- 可重入互斥鎖: Lock lock = new ReentrantLock()
lock.lock();
...
lock.unlock();
- 信號量: Semaphore semaphore = new Semaphore(3);
semaphore.acquire();
...
semaphore.release();
(ps:在同一時刻,可以有3個線程獲得鎖)
- 讀寫鎖:ReadWriteLock lock = new ReentrantReadWriteLock();
(ps:讀鎖會等待寫鎖釋放,可以同時讓多個線程持有)
- 倒計數鎖: CountDownLatch latch = new CountDownLatch(4);
- 柵欄鎖:CuclicBarrier barrier = new CyclicBarrier()
- 死鎖的預防
- 每個線程按照特定的順序申請鎖
(本隨筆為觀看 劉欣老師 講解視頻學習筆記)