AmazingCounters.com
摘要: 为了表述清楚假设当前请求获取锁的线程名称为“线程x” (1)非公平锁的第一步:当“线程x”请求获取到锁的时候,直接调用compareAndSetState(0, 1),这个方法会将判断state=0?如果等于0,说明这个锁没有被占领,那么“线程x”直接获取,这就是非公平锁,竞争锁成功之后,就将属性T 阅读全文
posted @ 2018-03-19 08:03 若谷先生 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 先来看看这个state的定义: 同步的状态,是一个volatile修饰的私有整形变量,volatile修饰的变量是一个多线程可见的,但是多线程可见,并不能保证操作是原子的。在AbstractQueuedSynchronizer下的compareAndSetState方法保证了操作的原子性,volat 阅读全文
posted @ 2018-03-19 08:03 若谷先生 阅读(158) 评论(0) 推荐(0) 编辑