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

戴尔网站建设的特点网络公司怎样推广网站

戴尔网站建设的特点,网络公司怎样推广网站,分销系统一般多少钱,o2o网站开发相关技术文章目录 1.单例模式的特点#x1f60a;2.单例模式两种实现#x1f923;#x1f917;#x1f60a;2.1 饿汉式2.2 懒汉式 3.传统单例模式的线程安全问题4.解决方法4.1静态局部变量4.2加锁4.3双重检查锁#xff08;DCL#xff09;4.4pthread_once 1.单例模式的特点#x1… 文章目录 1.单例模式的特点2.单例模式两种实现2.1 饿汉式2.2 懒汉式 3.传统单例模式的线程安全问题4.解决方法4.1静态局部变量4.2加锁4.3双重检查锁DCL4.4pthread_once 1.单例模式的特点 1.全局只有一个类的static实例存在 2.不允许直接实例化构造函数为私有的只通过一个类的静态方法获取该实例 2.单例模式两种实现 2.1 饿汉式 饿汉式是在类加载的时候就会创造实例会造成资源的浪费。 具体内部先定义并初始化好了一个静态实例。获取方法中直接返回实例。 特点线程安全会造成资源浪费 实现 class Singleton { private:static Singleton instance;// 私有构造函数防止类外实例化对象Singleton() {}public:// 获取实例的静态方法static Singleton getInstance() {return instance;}// 其他成员函数void doSomething() {// do something} };// 静态成员变量需要在类外初始化 Singleton Singleton::instance;int main() {// 获取单例对象实例Singleton singleton Singleton::getInstance();// 调用单例对象的方法singleton.doSomething();return 0; } 2.2 懒汉式 懒汉式是在需要时才创建实例通过获取实例方法获取实例。 具体内部定义一个静态实例获取方法中判断实例是否为空空则初始化实例否则返回该实例 特点避免资源浪费造成线程安全问题。 实现 class Singleton { private:// 静态成员变量用于保存单例实例static Singleton* instance;// 构造函数私有化防止外部创建实例Singleton() {}public:// 静态成员函数用于获取单例实例static Singleton* getInstance() {// 判断实例是否为空如果为空则创建实例if (instance nullptr) {instance new Singleton();}return instance;}// 删除拷贝构造函数和拷贝赋值运算符防止被复制Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };Singleton* Singleton::instance nullptr; // 初始化静态成员变量int main() {// 获取单例实例Singleton* singleton1 Singleton::getInstance();Singleton* singleton2 Singleton::getInstance();// 判断两个实例是否相同if (singleton1 singleton2) {cout 两个实例相同 endl;} else {cout 两个实例不相同 endl;}return 0; } 3.传统单例模式的线程安全问题 饿汉式是线程安全的懒汉式不是 当多线程执行getInstance时候如果线程A判断当前实例为空线程B正好判断到也为空就会申请资源当线程A恢复了后继续执行也会申请内存空间就会出现两个实例这就会出现问题 4.解决方法 4.1静态局部变量 class Singleton { private:Singleton() {}public:static Singleton* getInstance() {static Singleton instance;return instance;} }; 4.2加锁 class Singleton { private:// 静态成员变量用于保存单例实例static Singleton* instance;// 构造函数私有化防止外部创建实例Singleton() {}public:// 静态成员函数用于获取单例实例static Singleton* getInstance() {// 判断实例是否为空如果为空则创建实例Mutexlock lock(mutex);//加锁if (instance nullptr) {instance new Singleton();}return instance;}// 删除拷贝构造函数和拷贝赋值运算符防止被复制Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };Singleton* Singleton::instance nullptr; // 初始化静态成员变量int main() {// 获取单例实例Singleton* singleton1 Singleton::getInstance();Singleton* singleton2 Singleton::getInstance();// 判断两个实例是否相同if (singleton1 singleton2) {cout 两个实例相同 endl;} else {cout 两个实例不相同 endl;}return 0; }4.3双重检查锁DCL class Singleton { private:// 静态成员变量用于保存单例实例static Singleton* instance;// 构造函数私有化防止外部创建实例Singleton() {}public:// 静态成员函数用于获取单例实例static Singleton* getInstance() {// 判断实例是否为空如果为空则创建实例if (instance nullptr) {Mutexlock lock(mutex);if(instancenullptr)instance new Singleton();}return instance;}// 删除拷贝构造函数和拷贝赋值运算符防止被复制Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };Singleton* Singleton::instance nullptr; // 初始化静态成员变量int main() {// 获取单例实例Singleton* singleton1 Singleton::getInstance();Singleton* singleton2 Singleton::getInstance();// 判断两个实例是否相同if (singleton1 singleton2) {cout 两个实例相同 endl;} else {cout 两个实例不相同 endl;}return 0; }4.4pthread_once #includeiostream class singleton{ public: static singleton getinstance() { pthread_once(ponce,init);//保证该函数只被执行一次 return instance; } private: static void init() { instancenew singleton(); } singleton(){} ~singleton(){} static pthread_once_t ponce; static singleton* instance; }; singleton::poncePTHREAD_ONCE_INIT; singleton::instancenullptr;
http://www.w-s-a.com/news/91261/

相关文章:

  • 建设工程信息查询哪个网站好台州做优化
  • wordpress页面回收站位置台州做网站
  • 邢台市行政区划图seo咨询师招聘
  • 外贸网站建设案例网站建设优化开发公司排名
  • 恩施网站优化郑州有没有厉害的seo
  • 电子商务网站建设与管理期末考试题铜山区建设局网站
  • 怎么做非法彩票网站大兴安岭网站建设公司
  • 网站备案授权书模板海外如何淘宝网站建设
  • 网站开发提供源代码dedecms做网站教程
  • 怎么做国际网站首页erp系统一套大概多少钱
  • 做代理网站用什么软件建设网站的企业多少钱
  • 微企免费做网站360收录提交
  • 网站导航页怎么做wordpress数据库批量替换
  • wordpress站点更换域名自己做wordpress 模版
  • 怎么做虚拟的网站东莞常平邮编是多少
  • 电子商务网站和普通网站的区别正规网站建设多少费用
  • 郴州免费招聘网站前端好还是后端好
  • 织梦网站怎样做子域名20个中国风网站设计欣赏
  • wordpress网站搬简约创意logo图片大全
  • 叙述网站制作的流程石家庄58同城最新招聘信息
  • 南昌微信网站建设东莞网站优化软件
  • 爱站数据官网纯静态网站挂马
  • 网站建设公司未来方向3d设计网站
  • 建设部网站 干部学院 一级注册建筑师培训 2014年做网站开发的提成多少钱
  • 网上请人做软件的网站铝合金型材外发加工网
  • 手机网站建设万网山东省作风建设网站
  • 网站策划专员招聘50万县城做地方网站
  • 网站开发公司+重庆wordpress自定义搜索界面
  • 梅州南站学校官网
  • 网站变灰代码 所有浏览器企业邮箱域名怎么填写