synchronized關鍵字:通過在方法前加上synchronized關鍵字或者通過synchronized代碼塊來實現加鎖,保證同一時刻只有一個線程訪問該方法或代碼塊。
ReentrantLock類:通過創建ReentrantLock對象,并調用lock()和unlock()方法來實現加鎖和解鎖。
ReadWriteLock接口:通過ReadWriteLock接口可以實現讀寫分離的鎖,即多個線程可以同時讀取共享資源,但只有一個線程可以寫入共享資源。
Semaphore類:通過Semaphore類可以控制同時訪問共享資源的線程數量。
CountDownLatch類:通過CountDownLatch類可以實現線程等待某個條件滿足后再繼續執行。
CyclicBarrier類:通過CyclicBarrier類可以實現多個線程在同一點處相遇,然后同時繼續執行。
LockSupport類:通過LockSupport類可以實現線程的阻塞和喚醒。