- 博客(2)
- 收藏
- 关注
原创 [Java多线程]---原子操作的实现原理
处理器提供总线锁定和缓存锁定两个机制来保证复杂内存操作的原子性。使用总线锁保证原子性想要保证读改写共享变量的操作是原子的,就必须保证CPU1读改写共享变量的时候,CPU2不能操作缓存了该共享变量内存地址的缓存。总线锁就是使用处理器提供的一个LOCK#信号,当一个处理器在总线上输出此信号时,其他处理器的请求将被则阻塞住,那么该处理器就可以独占共享内存。使用缓存锁保证原子性因为总线锁会把CP...
2019-06-14 16:21:57 346
原创 [Java多线程]---volatile和synchronized的底层实现原理
文章目录volatile的实现原理synchronize的实现原理volatile的实现原理当有volatile变量修饰的共享变量进行写操作的时候会多出一行有Lock前缀指令的汇编代码。Lock前缀的指令在多核处理器下会发生两件事情:将当前处理器缓存行的数据写回到系统内存。这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效。原因:多处理器下的缓存一致性协议(MESI),...
2019-06-13 17:17:51 550
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人