Java并发编程中一定会用到线程同步,同步就会用到锁资源
ReentrantLock类是JUC包给定的一个工具锁,实现了公平锁和非公平锁,实现了可重入,实现了多等待队列
ReentrantLock的基本设计图如下
ReentrantLock其实依赖了AbstractQueuedSynchronizer类实现的多情况锁,而AbstractQueuedSynchronizer依赖了双向链表和Unsafe类实现了线程挂起和唤醒。
我按照ReentraintLock自己实现了一个demo
代码在git上:https://github.com/BincentLou/springboot.git
文件路径:example/web/src/test/java/com/david/example/juc
类名:ReentrantLockDemo 测试类名:ReentranLockTest