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

python兼职网站开发360度搜索建站网

python兼职网站开发,360度搜索建站网,什么软件做电影短视频网站,微信打赏wordpress1、单例模式#xff1a; 单例模式#xff1a;用来创建独一无二的#xff0c;只能够有一个实例的对象。 单例模式的结构是设计模式中最简单的#xff0c;但是想要完全实现一个线程安全的单例模式还是有很多陷阱的。 2、应用场景#xff1a; 共享数据或者共享访问点…1、单例模式 单例模式用来创建独一无二的只能够有一个实例的对象。 单例模式的结构是设计模式中最简单的但是想要完全实现一个线程安全的单例模式还是有很多陷阱的。 2、应用场景 共享数据或者共享访问点 创建一个对象需要消耗的资源过多如访问IO和数据库等资源 需要定义大量的静态常量和静态方法工具类 单例模式的应用场景有一些对象其实只需要一个比如windows Task Manager 任务管理器、windows 回收站、线程池、缓存、对话框、处理偏好设置和注册表的对象、日志对象、充当打印机、显卡等设备的驱动程序对象。这些对象只能够拥有一个实例如果创建出了多个实例就会导致一些程序的问题。程序的行为异常资源使用的过量或者导致不一致的结果。常用来管理共享的资源比如数据库的连接或者线程池。 3、优缺点 优点一个实例减少内存开销减少系统开销避免对一个资源的多重占用设置全局访问点优化和贡献资源。 缺点没有借口扩展性差不利于测试与单一职责原则有冲突单例模式把“要单例”和业务逻辑融合在一个类中。 4、实现 1、经典实现线程不安全 class Singleton { public: static Singleton* getInstance(); protected: Singleton(){} private: static Singleton *p; }; Singleton* Singleton::p NULL; Singleton* Singleton::getInstance() { if (NULL p) p new Singleton(); return p; } 1、当两个线程运行至if(instanceNULL)时可能产生线程安全问题。改进在用到的时候在初始化这样程序效率比较高但是有一个另外比较好的方法可以采用是提前初始化将Instance设置为static之后直接初始化为Singleton对象每次只需要执行返回操作即可。class Singleton { public:static Singleton* getInstance();protected:Singleton();private:static Singleton *instance; };//对单例直接进行初始化而不再方法Instance中进行判断。Singleton* Singleton::instance new Singleton;Singleton* Singleton::getInstance(){return instance;} 这样的话同样会导致问题就是如果单例本来资源比较多但是不需要创建那么早就会消耗资源~2、另外一种提升因为同步导致的性能变差的方法称为“双重检验加锁”。方法如下class Singleton { public:static Singleton* getInstance(); protected:Singleton(); private:static Singleton* instance; }Singleton *Singleton::instance NULL; Singleton* Singleton::getInstance() {//check 之前进行临界区加锁操作//双重检验加锁if(_instance NULL ) {lock();if( instance NULL) {instance new Singleton();}Unlock();}return _instance; }思路是只有在第一次创建的时候进行加锁当instance不为空的时候就不需要进行加锁的操作这样就可以提升性能~ 2、懒汉模式与饿汉模式 懒汉故名思义不到万不得已就不会去实例化类也就是说在第一次用到类实例的时候才会去实例化所以上边的经典方法被归为懒汉实现 饿汉饿了肯定要饥不择食。所以在单例类定义的时候就进行实例化。 特点与选择 区别由于要进行线程同步所以在访问量比较大或者可能访问的线程比较多时采用饿汉实现可以实现更好的性能。这是以空间换时间。在访问量较小时采用懒汉实现。这是以时间换空间。 1.加锁实现线程安全的懒汉模式class Singleton { public: static pthread_mutex_t mutex; static Singleton* getInstance(); protected: Singleton() { pthread_mutex_init(mutex); } private: static Singleton* p; }; pthread_mutex_t Singleton::mutex; Singleton* Singleton::p NULL; Singleton* Singleton::getInstance() { if (NULL p) { pthread_mutex_lock(mutex); if (NULL p) p new Singleton(); pthread_mutex_unlock(mutex); } return p; }2.内部静态变量实现懒汉模式class Singleton { public: static pthread_mutex_t mutex; static Singleton* getInstance(); protected: Singleton() { pthread_mutex_init(mutex); } }; pthread_mutex_t Singleton::mutex; Singleton* Singleton::getInstance() { pthread_mutex_lock(mutex); static singleton obj; pthread_mutex_unlock(mutex); return obj; } 饿汉模式class Singleton { public: static Singleton* getInstance(); protected: Singleton(){} private: static Singleton* p; }; Singleton* Singleton::p new Singleton; Singleton* Singleton::getInstance() { return p; }
http://www.zqtcl.cn/news/400174/

相关文章:

  • 做设计.不抠图网站114在线查询电话
  • 上饶网站制作需要多少钱网站百度地图标注
  • 微信网站二次开发广州番禺人才网
  • 支部网站及活动室建设免费建设网站有哪些
  • 深圳福田专业网站推广互联网网站开发有哪些职位
  • 手机网站生成西安北郊做网站
  • 深圳宝安区网站建设南通建设厅网站
  • 介绍做网站的标题在线图片编辑器好用吗
  • 金华建设网站公司笔记本销售网站开发的背景
  • 国外做的好看的网站设计网络营销推广方案怎么做
  • 网站建站业务wordpress网站域名地址
  • 烟台网站制作这做菠菜网站
  • 网站建设vr百度站长
  • 织梦网站广告代码如何写网页设计你若安好便是晴天作业
  • 网站建设 上海wordpress 知更鸟 公告
  • 建小说网站需要多少钱罗湖区住房和建设网站
  • 湖南专业网站建设服务做网站的底图尺寸多大
  • 山东省住房与建设厅网站首页有名的wordpress主题商
  • 常州市金坛区网站建设毕业设计代做淘宝好还是网站好
  • 品牌网站建设营销型网站设计网站整合方案
  • 网站开发设计师网站代理什么意思
  • 网站层级关系邯郸品牌商标vi设计策划公司
  • 网站开发产品需求说明小网站代码
  • 苏州网站推广排名网站建设方案范文8篇
  • 自己做考试题目网站广州番禺区美食攻略
  • 广州做网站如何如何制作一个网页
  • 网站定制开发收费标准是多少网站代码优化方案
  • 制作卡牌的网站深圳正规煤气公司
  • 手表网站哪家好网站用图片
  • 群辉nas 做网站wordpress linux 中文