1. 程式人生 > >java同步鎖中synchronized和Lock介面類的區別

java同步鎖中synchronized和Lock介面類的區別

Lock提供了和synchronized類似的同步功能,只是在使用時需要顯示地獲取和釋放鎖。雖然Lock缺少了synchronized隱式獲取釋放鎖的便捷性,但是卻擁有了鎖獲取與是釋放的可操作性、可中斷的獲取鎖以及超時獲取鎖等多種synchronized所不具備的同步特性 Lock介面提供的synchronized所不具備的主要特性
特性 描述
嘗試非阻塞地獲取鎖 當前執行緒嘗試獲取鎖,如果這一時刻鎖沒有被其他執行緒獲取到,則成功獲取並持有鎖
能被中斷地獲取鎖 與synchronized不同,獲取到的鎖能夠響應中斷,當獲取到鎖的執行緒被中斷時,中斷異常將會被丟擲,同時鎖會被釋放
超時獲取鎖 在指定的時間截止之前獲取鎖,如果截止時間之前仍舊無法獲取鎖,則返回