![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发编程艺术
主要是读Java并发编程艺术的一些总结
转身已离去
毕业于江南大学,目前工作4年,主要从事于大数据开发和Java服务开发
展开
-
深入理解AQS
1. AQS实现原理 AQS中维护了一个volatile int state(代表共享资源)和一个FIFO线程等待队列(多线程争用资源被阻塞时会进入此队列)。这里volatile能够保证多线程下的可见性,当state=1则代表当前对象锁已经被占有,其他线程来加锁时则会失败,加锁失败的线程会被放入一个FIFO的等待队列中,比列会被UNSAFE.park()操作挂起,等地其他获取锁的线程释放锁才能被唤醒。 另外state操作是通过CAS来保证并发修改的安全性。描述图 ...转载 2020-06-02 08:52:16 · 238 阅读 · 0 评论 -
第二章 Java并发机制的底层实现原理
1. volatile定义与实现原理 1.1 定义 确保共享变量能够被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量,若一个字段被声明为volatile,Java线程内存模型确保所有线程看到这个变量的值时一致的。 1.2 当volatile修饰变量,CPU会做什么事情? 比如:volatile instance = new Singleton();转变成汇编代码如下: 0...原创 2020-04-09 11:11:01 · 159 阅读 · 0 评论