摘要:
注意:在阅读本文之前或在阅读的过程中,需要用到ReentrantLock 1、对于ArrayBlockingQueue需要掌握以下几点 创建 入队(添加元素) 出队(删除元素) 2、创建 public ArrayBlockingQueue(int capacity, boolean fair) pu 阅读全文
摘要:
ReentrantLock.lockInterruptibly允许在等待时由其它线程调用等待线程的Thread.interrupt方法来中断等待线程的等待而直接返回,这时不用获取锁,而会抛出一个InterruptedException。 ReentrantLock.lock方法不允许Thread.i 阅读全文
摘要:
先上两个图: 图一:ReentrantLock结构图 图二:公平锁和非公平锁流程图 公平锁 和 非公平锁的区别: 公平锁中,每一次的tryAcquire都会检查CLH队列中是否仍有前驱的元素,如果仍然有那么继续等待,通过这种方式来保证先来先服务的原则; 非公平锁,首先是检查并设置锁的状态,这种方式会 阅读全文