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

电子商务网站开发人员要求建设工程设计招标信息网站.

电子商务网站开发人员要求,建设工程设计招标信息网站.,163企业邮箱免费注册,wordpress页面禁止评论单例模式 (Singleton) 概念 单例模式 确保一个类在整个程序生命周期中只有一个实例#xff0c;并提供一个全局访问点。 它是一种创建型设计模式#xff0c;广泛用于需要共享资源的场景。 使用场景 配置管理器#xff1a;程序中需要一个全局的配置对象。日志系统#xff…单例模式 (Singleton) 概念 单例模式 确保一个类在整个程序生命周期中只有一个实例并提供一个全局访问点。 它是一种创建型设计模式广泛用于需要共享资源的场景。 使用场景 配置管理器程序中需要一个全局的配置对象。日志系统确保日志记录器只有一个实例。数据库连接池共享一个数据库连接实例。 实现单例模式的要点 私有构造函数防止外部通过 new 操作符创建实例。静态成员变量保存类的唯一实例。静态方法提供全局访问点。线程安全确保多线程环境下实例只有一个。 示例代码线程安全的单例模式 #include iostream #include mutex// 单例类定义 class Singleton { private:// 静态实例指针用于保存唯一实例static Singleton* instance;// 互斥锁保证多线程环境下的线程安全static std::mutex mtx;// 私有构造函数禁止外部实例化Singleton() {std::cout Singleton Created! std::endl;}public:// 禁止拷贝构造和赋值操作Singleton(const Singleton) delete;Singleton operator(const Singleton) delete;// 静态方法用于获取唯一实例static Singleton* getInstance() {// 双重检查锁定减少锁的开销if (instance nullptr) {std::lock_guardstd::mutex lock(mtx); // 加锁if (instance nullptr) {instance new Singleton(); // 创建唯一实例}}return instance;}// 提供一些功能方法void doSomething() {std::cout Singleton is working! std::endl;}// 销毁实例可选static void destroyInstance() {delete instance;instance nullptr;} };// 静态成员变量初始化 Singleton* Singleton::instance nullptr; std::mutex Singleton::mtx;// 主函数测试单例模式 int main() {// 获取单例实例Singleton* s1 Singleton::getInstance();Singleton* s2 Singleton::getInstance();// 调用单例方法s1-doSomething();// 检查两个实例是否相同std::cout Are s1 and s2 the same? (s1 s2 ? Yes : No) std::endl;// 销毁单例实例Singleton::destroyInstance();return 0; }代码详解 1. 私有化构造函数 目的禁止通过 new 操作符创建实例。 Singleton() {std::cout Singleton Created! std::endl; }2. 静态成员变量 保存唯一的单例实例初始值为 nullptr。 static Singleton* instance;3. 互斥锁 确保在多线程环境下多个线程不会同时创建实例。 static std::mutex mtx;4. 静态方法 getInstance 提供唯一实例的全局访问点。双重检查锁定减少锁的开销提高性能。 static Singleton* getInstance() {if (instance nullptr) {std::lock_guardstd::mutex lock(mtx);if (instance nullptr) {instance new Singleton();}}return instance; }5. 销毁实例 可选在程序结束时清理单例实例。 static void destroyInstance() {delete instance;instance nullptr; }运行结果 执行代码输出 Singleton Created! Singleton is working! Are s1 and s2 the same? Yes单例模式的优缺点 优点 全局唯一实例确保实例唯一性。延迟初始化实例在第一次使用时才会创建。线程安全双重检查锁定保证线程安全。 缺点 难以测试单例模式引入全局状态可能影响单元测试。不适合频繁访问的场景线程安全的实现有一定性能开销。内存泄漏风险如果程序结束时未释放实例可能造成内存泄漏。 适合扩展的改进 懒汉式与饿汉式可选择延迟初始化懒汉式或直接初始化饿汉式。智能指针管理用 std::unique_ptr 管理单例实例避免内存泄漏。多线程优化采用 C11 的 std::call_once 确保线程安全。
http://www.zqtcl.cn/news/347203/

相关文章:

  • 如何构建成交型网站wordpress搭建英文网站
  • 阿里云网站建设方案书怎么写四川做网站公司哪家好
  • 提供衡水网站建设wordpress游客看小图登陆查看大图
  • 网站开发优势wordpress 密码破解
  • 做网站空间需要多大深圳服装网站建设
  • 建网站wordpress制作app多少钱一个
  • 怎么做装修网站torrentkitty磁力猫
  • 网站建立站点wordpress手机网站模板制作
  • 宁夏建设工程招标投标信息网站教师做网站赚钱
  • 潍坊网站制作价格网站维护入门教程
  • 微信网站怎么做下载附件wordpress英文主题汉化
  • 桂平网站设计python基础教程第二版
  • wordpress hermit杭州企业seo网站优化
  • 贵州做团队培训的网站法学网站阵地建设
  • 网站死链是什么西宁高端网站开发公司
  • 做团购网站的公司wordpress附件存放位置
  • 成都最专业做网站的仿win8网站模板
  • 国外设计类网站男女做暖暖试看网站
  • 网站设计哪个好珠海微网站进入
  • 云主机开网站教程模板网会员
  • 网站建设无锡虚拟网站官网
  • 品牌网站设计联系东莞网站优化公
  • 自己做整个网站的流程php装修网站源码
  • 天津网站建设班模拟网站建设软件有哪些
  • 服务类的网站怎么做做软件的网站担保网站
  • 最新电子产品网站模板海口网站排名提升
  • 北京社保网站减员怎么做phpcms v9 实现网站搜索
  • 视频运营管理网站济南网站建设 济南货梯
  • html电影网站模板下载工具阿里云网站建设 部署与发布笔记
  • 建设跨境网站微信seo是什么意思