JDK提供的幾種常用的鎖


  • 可重入互斥鎖: 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()

               

 

  • 死鎖的預防
    • 每個線程按照特定的順序申請鎖  

(本隨筆為觀看 劉欣老師 講解視頻學習筆記)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM