多執行緒靜態同步函式的鎖是class 物件

2022-02-08 07:03:47 字數 697 閱讀 4228

/*

通過驗證發現 同步函式如果被靜態修飾後,不再以this 為鎖

靜態進記憶體時,記憶體中沒有本類物件,但是一定有該類的位元組碼檔案物件

類名.class 該物件的型別是class

靜態的同步方法,使用的鎖是該方法所在類的位元組碼檔案物件。類名.class

*/class ticket implements runnable

catch(exception e){}

system.out.println(thread.currentthread().getname() +" ..code..."+ tick--);}}

}} else

while(true)

show(); }

public static synchronized void show()//靜態同步函式 該類對應的位元組碼檔案物件為鎖

catch(exception e){}

system.out.println(thread.currentthread().getname() +" .....show..."+ tick--);

} }}

class staticlockdemo

catch(exception e){}//讓主線程睡眠40毫秒 保證第乙個執行緒先開始執行 且標誌位改變

t2.start();

}}

多執行緒 同步函式使用的鎖是this

同步函式用的是哪乙個鎖呢?函式需要被物件呼叫。那麼函式都有乙個所屬物件引用。就是this。所以同步函式使用的鎖是this。通過程式進行驗證 需求 使用兩個執行緒來買票。乙個執行緒在同步 塊中。乙個執行緒在同步函式中。都在執行買票動作。package com.tan class ticket impl...

多執行緒 驗證同步函式的鎖是this

同步函式的使用的鎖是this 同步函式和同步 塊的區別 同步函式的鎖是固定的this。同步 塊的鎖是任意的物件。建議使用同步 塊。class ticket implements runnable catch interruptedexception e system.out.println thre...

多執行緒靜態同步函式

多執行緒靜態同步函式和非靜態同步函式的區別是啥?靜態同步函式 就是方法使用了static關鍵字修飾 非靜態同步函式 沒有用static關鍵字修飾的方法,也就是使用this鎖的同步函式 那麼靜態同步函式使用的啥鎖呢?分析 兩個執行緒,乙個執行緒使用靜態同步函式,乙個使用同步 塊this鎖,如果執行緒不...