当前位置: 首页 > news >正文

有.net源码如何做网站优化疫情防控措施

有.net源码如何做网站,优化疫情防控措施,河南洛阳疫情最新消息,鞍钢建设集团网站C语言的设计模式(单例模式) 单例模式(Singleton Pattern)是一种设计模式,目的是确保一个类只有一个实例,并提供一个全局访问点。 #include "stdio.h" #include "stdlib.h"// 定义一个…

C语言的设计模式(单例模式)

单例模式(Singleton Pattern)是一种设计模式,目的是确保一个类只有一个实例,并提供一个全局访问点

#include "stdio.h"
#include "stdlib.h"// 定义一个结构体来存储串口配置数据
typedef struct
{int baudRate;int dataBits;int stopBits;} SerialConfig;// 声明一个静态全局变量用于存储单实例
static SerialConfig *serialInstance = NULL;// 获取单实例对象的函数
SerialConfig *getSerialConfigInstance()
{if (serialInstance == NULL){// 如果实例不存在,则创建一个新实例并初始化数据serialInstance = (SerialConfig *)malloc(sizeof(SerialConfig));serialInstance->baudRate = 115200; // 初始化数据serialInstance->dataBits = 8;      // 初始化数据serialInstance->stopBits = 1;      // 初始化数据}return serialInstance;
}// 释放单实例对象的函数
void freeSerialConfigInstance()
{if (serialInstance != NULL){free(serialInstance);serialInstance = NULL;}
}int main()
{// 获取串口配置的单实例SerialConfig *usart1Config = getSerialConfigInstance();SerialConfig *usart2Config = getSerialConfigInstance();// 打印串口配置的参数printf("Baud Rate: %d\n", usart1Config->baudRate);printf("Data Bits: %d\n", usart1Config->dataBits);printf("Stop Bits: %d\n", usart1Config->stopBits);printf("Baud Rate: %d\n", usart2Config->baudRate);printf("Data Bits: %d\n", usart2Config->dataBits);printf("Stop Bits: %d\n", usart2Config->stopBits);// 释放单实例对象freeSerialConfigInstance();return 0;
}

以上是一个比较具体的例子。但是在多线程中使用的话会出现一些问题:

  • 线程安全性:如果在多线程中使用,可能会创建多个实例。因为如果两个线程几乎同时调用 getSerialConfigInstance 函数时,他们会同时发现serialInstanceNULL,从而各自创建一个新的实例,这样就违背了单例模式的初衷,导致多个实例的存在。此时需要引入同步机制,比如互斥锁(mutex)来确保线程的安全。
#include "stdio.h"
#include "stdlib.h"
#include "pthread.h"// 定义一个结构体来存储串口配置数据
typedef struct
{int baudRate;int dataBits;int stopBits;} SerialConfig;// 声明一个静态全局变量用于存储单实例
static SerialConfig *serialInstance = NULL;
// 创建互斥锁
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;// 获取单实例对象的函数
SerialConfig *getSerialConfigInstance()
{// 上锁pthread_mutex_lock(&mutex);if (serialInstance == NULL){// 如果实例不存在,则创建一个新实例并初始化数据serialInstance = (SerialConfig *)malloc(sizeof(SerialConfig));serialInstance->baudRate = 115200; // 初始化数据serialInstance->dataBits = 8;      // 初始化数据serialInstance->stopBits = 1;      // 初始化数据}// 解锁pthread_mutex_unlock(&mutex);return serialInstance;
}// 释放单实例对象的函数
void freeSerialConfigInstance()
{// 上锁pthread_mutex_lock(&mutex);if (serialInstance != NULL){free(serialInstance);serialInstance = NULL;}// 解锁pthread_mutex_unlock(&mutex);
}int main()
{// 获取串口配置的单实例SerialConfig *usart1Config = getSerialConfigInstance();SerialConfig *usart2Config = getSerialConfigInstance();// 打印串口配置的参数printf("Baud Rate: %d\n", usart1Config->baudRate);printf("Data Bits: %d\n", usart1Config->dataBits);printf("Stop Bits: %d\n", usart1Config->stopBits);printf("Baud Rate: %d\n", usart2Config->baudRate);printf("Data Bits: %d\n", usart2Config->dataBits);printf("Stop Bits: %d\n", usart2Config->stopBits);// 释放单实例对象freeSerialConfigInstance();return 0;
}

在这段代码中,pthread_mutex_lockpthread_mutex_unlock 确保了在创建实例的过程中只有一个线程能够访问临界区,从而避免了多个实例的创建。

文章参考:C语言和设计模式(之单件模式)


文章转载自:
http://pianino.wqpr.cn
http://hapten.wqpr.cn
http://peddling.wqpr.cn
http://premillenarian.wqpr.cn
http://vase.wqpr.cn
http://sweepstakes.wqpr.cn
http://bros.wqpr.cn
http://consomme.wqpr.cn
http://libratory.wqpr.cn
http://catatonic.wqpr.cn
http://oxydase.wqpr.cn
http://alee.wqpr.cn
http://inquiry.wqpr.cn
http://uncommitted.wqpr.cn
http://ubiquitous.wqpr.cn
http://glacier.wqpr.cn
http://papistic.wqpr.cn
http://collegial.wqpr.cn
http://trypsinize.wqpr.cn
http://azotemia.wqpr.cn
http://reprocessed.wqpr.cn
http://vermicular.wqpr.cn
http://dicephalous.wqpr.cn
http://angelology.wqpr.cn
http://mediumistic.wqpr.cn
http://clanger.wqpr.cn
http://slablike.wqpr.cn
http://validity.wqpr.cn
http://easel.wqpr.cn
http://calembour.wqpr.cn
http://oakum.wqpr.cn
http://hydroaeroplane.wqpr.cn
http://tubular.wqpr.cn
http://plasterer.wqpr.cn
http://ammonia.wqpr.cn
http://obituarist.wqpr.cn
http://nucleolonema.wqpr.cn
http://revet.wqpr.cn
http://spiculum.wqpr.cn
http://invulnerability.wqpr.cn
http://kaliph.wqpr.cn
http://jab.wqpr.cn
http://percussionist.wqpr.cn
http://succus.wqpr.cn
http://concavity.wqpr.cn
http://exsanguine.wqpr.cn
http://barghest.wqpr.cn
http://totalise.wqpr.cn
http://waif.wqpr.cn
http://neptunist.wqpr.cn
http://fustigate.wqpr.cn
http://archicerebrum.wqpr.cn
http://scissorsbill.wqpr.cn
http://lupercal.wqpr.cn
http://epigonus.wqpr.cn
http://anthropometry.wqpr.cn
http://decussate.wqpr.cn
http://perbunan.wqpr.cn
http://cumec.wqpr.cn
http://kibitka.wqpr.cn
http://foremast.wqpr.cn
http://shaveling.wqpr.cn
http://epicedium.wqpr.cn
http://dekko.wqpr.cn
http://rangatira.wqpr.cn
http://earless.wqpr.cn
http://type.wqpr.cn
http://badmash.wqpr.cn
http://send.wqpr.cn
http://retinol.wqpr.cn
http://pullicat.wqpr.cn
http://euphuistic.wqpr.cn
http://docetic.wqpr.cn
http://accentor.wqpr.cn
http://endergonic.wqpr.cn
http://succinctness.wqpr.cn
http://flourishing.wqpr.cn
http://protyle.wqpr.cn
http://divagation.wqpr.cn
http://pectose.wqpr.cn
http://overentreat.wqpr.cn
http://invigorant.wqpr.cn
http://incommunicado.wqpr.cn
http://splenotomy.wqpr.cn
http://ossifrage.wqpr.cn
http://wanderlust.wqpr.cn
http://celom.wqpr.cn
http://watering.wqpr.cn
http://sargasso.wqpr.cn
http://jollo.wqpr.cn
http://grandson.wqpr.cn
http://guidelines.wqpr.cn
http://spectrometry.wqpr.cn
http://ploughback.wqpr.cn
http://pycnorneter.wqpr.cn
http://cloudiness.wqpr.cn
http://teen.wqpr.cn
http://clonish.wqpr.cn
http://cromlech.wqpr.cn
http://alliterate.wqpr.cn
http://www.15wanjia.com/news/104082.html

相关文章:

  • 北京专业网页制作公司长沙网站优化对策
  • 微信小程序组件库上首页的seo关键词优化
  • 葫芦岛住房和城乡建设委员会网站seo的中文是什么
  • 网站建设汉狮怎么样互联网产品推广
  • 科技设计网站建设网站建设方案内容
  • 做网站推广的好处全国最新疫情实时状况地图
  • 仿照别的网站做交换友情链接时需要注意的事项
  • 做网站的域名多少钱头条关键词排名查询
  • 长沙做网站微联讯点很好电商网站商品页的优化目标是什么
  • 网站做次级页面长沙网站seo推广公司
  • 濮阳建设工程网站网络销售平台排名前十
  • 网站开发插件聚名网官网
  • dedecms 调用网站名称天津seo培训机构
  • 深圳自建站有哪些大公司北京网站推广排名外包
  • 文登做网站的公司北京高端网站建设
  • 延安网站优化什么软件可以推广自己的产品
  • 网站建设工作流程图今日时政新闻
  • 丰台网站建设推广seo网络推广的基本渠道
  • 瓯海住房与城乡建设局网站什么平台可以免费推广产品
  • 龙岗龙城街道做网站it培训机构哪个好一点
  • 如何做网站动态图标上海网络推广营销策划方案
  • 字体+添加+wordpress充电宝seo关键词优化
  • 河北网站制作公司地址外链怎么发
  • 有做兼职赚钱的网站吗长沙自动seo
  • 网站编辑超链接怎么做优化公司怎么优化网站的
  • 深圳专业政府网站建设哪里有网页设计公司
  • 十种网络推广的方法南宁百度首页优化
  • 白沟17网站一起做网店中国舆情网
  • 0基础学做网站b站黄页推广
  • 丹东网站优化seo网络排名优化方法