JVM 如何实现非堵塞的

利用CAS(compare and Swap)实现。在多CPU的情况也是有锁的、CAS是底层的机器实现。汇编命令compxchg完成的。
在openJdk实现有

 
先判断是否是多CPU。
ecx -->计数器(CPU寄存器)
eax-->cpu的累加器
edx-->余数
具体操作是先把compare放到cpu寄存器。。在比较。最后如果是多CPU在加锁。后面调用汇编命令compxchg完成CAS。
具体理解可能有点出入。欢迎指正哈

猜你喜欢

转载自huangmiao.iteye.com/blog/2313258
JVM