簡述synchronized和java.util.concurrent.locks.Lock的異同


1.synchronized 用在方法和代碼塊的區別?

     a. 可以只對需要同步的使用

     b.與wait(),notify()和notifyall()方法使用比較方便

 

2.wait()

    a。釋放持有的對象鎖,線程進入等待池,釋放cpu,其他正在等待的線程可以獲得鎖,而sleep方法,線程會休眠一段時間,線程不會釋放鎖。

 

3.ReentrantLock 

   還包括了中斷鎖等待和定時鎖等待,

 

在並發量小的時候,用synchronize是比較好的選擇,並發量大的時候用Lock。

synchronize是自動釋放鎖,Lock是主動釋放鎖

Lock可以設定所等待的時間,

有些操作不會發生沖突現象,需要用Lock解決,比如同時讀文件。

 


免責聲明!

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



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