當前位置:吉日网官网 - 盛世收藏 - 如何在java中實現線程安全,synchronized和lock的區別,重入鎖。

如何在java中實現線程安全,synchronized和lock的區別,重入鎖。

首先,synchronized和lock的用法不同

Synchronized:將該控件添加到需要同步的對象中。Synchronized意味著需要在方法和特定代碼塊中鎖定的對象。

鎖定:需要顯示指定的開始位置和結束位置。壹般使用ReentrantLock類作為鎖,在多線程中必須有壹個ReentrantLock類作為對象,才能保證鎖生效。鎖定和解鎖位置需要通過顯示lock()和unlock()來指示。所以通常在finally塊中編寫unlock()來防止死鎖。

其次,同步和鎖使用的區別

壹般來說synchronized原語和ReentrantLock沒有區別,但是在非常復雜的同步應用程序中,請考慮使用ReentrantLock,尤其是當您滿足以下兩個要求時。

在等待鎖的控制權時,線程需要被中斷。

2.需要在wait-notify和ReentrantLock中分別處理壹些條件應用,線程可以控制notify。

3.有了公平鎖功能,每個進來的線程都會排隊等待。

  • 上一篇:微信如何備份照片?
  • 下一篇:凱蒂,為什麽貓沒有嘴?
  • copyright 2024吉日网官网