本文共 192 字,大约阅读时间需要 1 分钟。
有t1,t2,t3,t4四个线程争抢锁,首先要判断count是不是为0,如果为0就会同时对count进行操作,所以只会有一个线程会成功,假设是t3线程成功,那么其他线程就会进入waiters等待,并且owner会指向t3。当t3线程释放锁,count变为0,owner被清空,那么t1就会尝试去修改count。
由上图中源码可见,ReentrantLock可以自己设置是否为公平锁。转载地址:http://zqugn.baihongyu.com/