摘要: 刚刚同事贴了一个代码: [代码]上面那段代码是单例模式的一个实现,多线程并发时候会不会有问题?大牛的答案是,可能会有问题原因在于编译器的实现与优化。如果,pInst = new T;转换成机器码时,是先将分配的地址空间赋值给pInst,(这时可能其他线程获取了pInst)然后再进行对象的初始化,可能其他线程调用的时候得到的是一个尚未进行初始化的对象...要解决这个问题就要用cpu的栅栏指令,阻止编... 阅读全文
posted @ 2010-03-24 15:43 高级动物 阅读(548) 评论(0) 推荐(1) 编辑