JUC并发包
Java技术践行者
让我们一起在开发这条路,默默深耕,用技术改变生活
展开
-
AbstractQueuedSynchronizer (AQS)
学习一个java并发编程工具的时候,我们首先要抓住这三点。状态:一般是一个state属性,它基本是整个工具的核心,通常整个工具都是在设置和修改状态,很多方法的操作都依赖于当前状态是什么。由于状态是全局共享的,一般会被设置成volatile类型,以保证其修改的可见性; 队列:队列通常是一个等待的集合,大多数以链表的形式实现。队列采用的是悲观锁的思想,表示当前所等待的资源,状态或者条件短时间内可...原创 2019-07-20 10:18:52 · 139 阅读 · 0 评论 -
CAS原理
CAS:比较和交换(Compare And Swap )是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 这是作为单个原子操作完成的。 原子性保证新值基于最新信息计算; 如果该值在同一时间被另一个线程更新,则写入将失败。 操作结果必须说明是否进行替换; 这可以通过一个简单的布尔响应(这个变体通常称为比较和设置),或通...原创 2019-06-20 15:34:05 · 133 阅读 · 0 评论