最贊回答 / aka_KK
當(dāng)然不行了,這個(gè)你打開(kāi)IDE試一下不就知道了嘛?synchronized的兩種用法:1.對(duì)象鎖? ? 方法鎖(修飾方法,默認(rèn)鎖對(duì)象為this當(dāng)前實(shí)例對(duì)象)? ? 同步代碼塊鎖(修飾代碼塊,自己指定鎖對(duì)象)2.類鎖? ? 修飾靜態(tài)的方法或指定鎖為Class對(duì)象(同步代碼塊使用Class對(duì)象做鎖)
2019-02-19
最贊回答 / qq_Wzl_3
我對(duì)jvm不太了解,但用Linux中的給你解釋下。
當(dāng)一個(gè)線程想去獲取一把鎖而獲取不到時(shí),是處在一個(gè)死循環(huán)狀態(tài)。
while( 沒(méi)有得到鎖)
{
???? 嘗試獲取鎖;
}
所以就相當(dāng)于死在了這個(gè)循環(huán)里面。
當(dāng)然還有嘗試鎖,先嘗試獲取,沒(méi)獲取到就退出,而不是死在循環(huán)中。
鎖的內(nèi)容還有很多,慢慢學(xué)吧。
2019-01-09