C++多线程(3) 您所在的位置:网站首页 timezones和unlock的区别 C++多线程(3)

C++多线程(3)

2024-07-15 02:32| 来源: 网络整理| 查看: 265

当在多线程中创建单例类时,可能会面临这个问题:当线程1在初始化单例类对象执行GetInstance()函数时,执行完if (m_instance == NULL)语句后被切换到线程2执行GetInstance()函数,由于线程1并没有执行m_instance = new MyCAS()语句,导致线程2在执行if (m_instance == NULL)时判断没有初始化m_instance,进而执行了m_instance = new MyCAS()语句,当再切换回线程1时,又执行了一遍m_instance = new MyCAS()语句,最终导致这个单例类对象被创建了两个。总之,当在多线程中创建单例类时,可能会创建多个单例类对象。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有