设计模式学习(一)单例模式增补——指令重排

打印 上一主题 下一主题

主题 921|帖子 921|积分 2763

目次

媒介

《单例模式学习》中曾提到懒汉式DCLP的单例模式实际也不是线程安全的,这是编译器的指令重排导致的,本文就简朴讨论一下指令重排对单例模式的影响,以及对应的解决方法。
指令重排简介

指令重排(Instruction Reordering)是编译器或处理器为了优化程序实验效率而对程序中的指令序列进行重新排序的过程。这种重排可以发生在编译时也可以发生在运行时,目标是为了淘汰指令的等待时间和提高实验的并行性。
指令重排可能会引入并发程序中的一些题目,特别是在多线程情况中,没有适当同步机制的情况下,可能会导致程序的实验效果不符合预期。
下面先容指令重排在单例模式中的影响
指令重排对单例模式的影响

首先回顾一下懒汉式DCLP单例模式的代码
[code]class CSingleton{public:    static CSingleton* getInstance();private:    CSingleton()    {        std::cout
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表