多线程+并发编程 2

tech2023-03-01  98

volatile   保证线程可见性   禁止指令重排序(cpu)

DCL  Double check lock  

MESI  cpu 级别的缓存一致性协议

单例模式 

new  一个对象 分三步

 1.  给对象申请内存  a=0

 2.  给对象初始化  a=8

 3.  给对象赋值

CAS  重灾区  乐观锁

无锁优化  如果是基础类型 无所谓  引用类型就有问题 cpu 元语支持 

cas (V, expected,newValue)

if(v==expected)

v=newValue

otherwise try again or fail 

unsafe == c++的指针  

c -> malloc free c++ -> new delete

ABA 问题 ----------

 

最新回复(0)