1. 程式人生 > >Lock介面與Synchronized關鍵字的區別

Lock介面與Synchronized關鍵字的區別

首先,Lock介面與Synchronized關鍵字都能提供相同的同步功能,只是Lock介面在使用時,需要顯示地獲取和釋放鎖。從而使Lock介面沒有像Synchronized關鍵字那樣隱式獲取鎖來的便捷,然而,Lock介面可以擁有獲取鎖和釋放鎖的可操作性、可中斷的獲取鎖以及超時獲取鎖等多種Synchronized關鍵字不具備的特性。

具體如下:

特性 描述
嘗試非阻塞地獲取鎖 當前執行緒嘗試獲取鎖,如果這一時刻鎖沒有被其他執行緒獲取到,則成功獲取並持有鎖
能被中斷地獲取鎖 與Synchronized不同,獲取到鎖的執行緒能夠相應中斷,當獲取到鎖的執行緒被中斷時,中斷異常將會被丟擲,同時鎖會被釋放
超時獲取鎖 在指定的截止時間之前獲取鎖,如果截止時間到了仍舊無法獲取鎖,則返回