美文网首页
java线程之原子操作的实现原理

java线程之原子操作的实现原理

作者: dimdark | 来源:发表于2018-03-25 12:12 被阅读0次

参考书籍: <<java并发编程的艺术>>
这篇文章是自己阅读该书籍时的读书笔记

原子操作(atomic operation)的定义

原子操作不可被中断的一个或一系列操作

处理器实现原子操作的机制
  • 使用总线锁保证原子性
    所谓总线锁就是使用处理器提供的一个LOCK#信号, 当一个处理器在总线上输出此信号时, 其他处理器的请求将被阻塞住, 那么该处理器可以独占共享内存;

  • 使用缓存锁保证原子性
    所谓缓存锁定是指内存区域如果被缓存在处理器的缓存行中, 并且在LOCK操作期间被锁定, 那么当它执行锁操作回写到内存时, 处理器不在总线上声言LOCK#信号, 而是修改内部的内存地址, 并允许它的缓存一致性机制来保证操作的原子性;

java实现原子操作的机制

在java中通过使用 循环CAS 的方式来实现原子操作

CAS实现原子操作的三大问题
  • ABA问题
  • 循环时间长且开销大
  • 只能保证一个共享变量的原子操作

相关文章

网友评论

      本文标题:java线程之原子操作的实现原理

      本文链接:https://www.haomeiwen.com/subject/nqwqcftx.html