導航:首頁 > 編程語言 > java方法鎖對象鎖

java方法鎖對象鎖

發布時間:2023-08-01 13:56:38

A. 關於java中的synchronized鎖定對象

synchronized的鎖是針對多線程的,從線程的角度去思考才能真正弄明白。

Java的synchronized使用方法總結
1. 把synchronized當作函數修飾符時
這也就是同步方法,那這時synchronized鎖定的是哪個對象呢?它鎖定的是調用這個同步方法對象。也就是說,當一個對象P1在不同的線程中執行這個同步方法時,它們之間會形成互斥,達到同步的效果。但是這個對象所屬的Class所產生的另一對象P2卻可以任意調用這個被加了synchronized關鍵字的方法。
同步塊,示例代碼如下:
public void method3(SomeObject so)
{
synchronized(so)
{
//…..
}
}
這時,鎖就是so這個對象,誰拿到這個鎖誰就可以運行它所控制的那段代碼。當有一個明確的對象作為鎖時,就可以這樣寫程序,但當沒有明確的對象作為鎖,只是想讓一段代碼同步時,可以創建一個特殊的instance變數(它得是一個對象)來充當鎖。
3.將synchronized作用於static 函數,示例代碼如下:
Class Foo
{
public synchronized static void methodAAA() // 同步的static 函數
{
//….
}
public void methodBBB()
{
synchronized(Foo.class) // class literal(類名稱字面常量)
}
}
代碼中的methodBBB()方法是把class literal作為鎖的情況,它和同步的static函數產生的效果是一樣的,取得的鎖很特別,是當前調用這個方法的對象所屬的類(Class,而不再是由這個Class產生的某個具體對象了)。

B. java synchronized對靜態方法加鎖

2所有的非靜抄態同步方法用襲的都是同一把鎖——實例對象本身,也就是說如果一個實例對象的非靜態同步方法獲取鎖後,該實例對象的其他非靜態同步方法必須等待獲取鎖的方法釋放鎖後才能獲取鎖,可是別的實例對象的非靜態同步方法因為跟該實例對象的非靜態同步方法用的是不同的鎖,所以毋須等待該實例對象已獲取鎖的非靜態同步方法釋放鎖就可以獲取他們自己的鎖。
而所有的靜態同步方法用的也是同一把鎖——類對象本身,這兩把鎖是兩個不同的對象,所以靜態同步方法與非靜態同步方法之間是不會有競態條件的。但是一旦一個靜態同步方法獲取鎖後,其他的靜態同步方法都必須等待該方法釋放鎖後才能獲取鎖,而不管是同一個實例對象的靜態同步方法之間,還是不同的實例對象的靜態同步方法之間,只要它們同一個類的實例對象!

C. java裡面的鎖機制可以用〔〕把一個類的所有成員都鎖起來嗎而且一個對象可以掛兩個鎖嗎比如線程A

對象鎖一般只鎖一個對象吧,對象加了鎖後防止多線程同時對同一變數操作報內錯, 我遇到過就容是在遍歷一個map的時候 有擰一個線程往map裡面加東西 就偶然性報錯,後面給對象加了鎖就沒事了。 至於方法加鎖 比較直觀就是 兩個線程不能同時調用這個方法,所以兩個方法都加鎖 是不同的鎖沒有影響。 我自己的理解不對請指正

D. java中synchronized函數鎖,鎖的是什麼

修飾方法就代表鎖的是此方法體,如 public synchronized int cal(){...} 表示每次訪問此方法都只能一個線程訪問,其他的要等待訪問完了才能進入此方法,這是競爭鎖,synchronized(obj)鎖的是obj,代表只有獲取了此obj鎖,才能繼續訪問,更高級的推薦使用Lock或ReentrainLock。

E. java同步代碼塊的對象鎖是什麼

對象鎖你是可以自己指定的,你可以把當前類對象傳過來,那代碼塊的對象鎖就是這個類對象。在線程間通信的時候,notify只能喚醒擁有相同鎖的線程。

閱讀全文

與java方法鎖對象鎖相關的資料

熱點內容
法那科英制螺紋數控怎麼編程 瀏覽:430
戀舞最新升級獎勵表 瀏覽:149
四川語音交友戀愛app有哪些 瀏覽:528
iphone6美國賣多少 瀏覽:887
圓弧刀東槽如何編程 瀏覽:870
js怎麼單擊改變標簽里的文字 瀏覽:760
實例配置文件里的sid是什麼 瀏覽:43
ps文件模糊 瀏覽:192
葉檀財經推出過什麼購物APP 瀏覽:875
linux硬碟檢測 瀏覽:431
如何用路由器降低網路延遲 瀏覽:601
aix分區root密碼 瀏覽:439
運動鞋買鞋上什麼app 瀏覽:904
NSA工具下載 瀏覽:918
函數代碼在哪個文件夾 瀏覽:213
微信應用怎麼代碼添加快捷方式 瀏覽:371
用數據說話是最有力的什麼 瀏覽:27
圖片文件被鎖定無法打開 瀏覽:768
wr886nv2升級 瀏覽:490
移動硬碟視頻文件無法刪除 瀏覽:417

友情鏈接