多執行緒之靜態同步函式 方法

2021-08-05 22:50:58 字數 705 閱讀 9115

/*

如果同步函式被靜態修飾後,使用的鎖是什麼呢?

通過驗證,發現不在是this。因為靜態方法中也不可以定義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 staticmethoddemo

catch(exception e){}

t.flag = false;

t2.start();

}}

多執行緒靜態同步函式

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

多執行緒之執行緒同步

pulse lockobj 表示釋放當前被lock的lockobj,容許其他執行緒呼叫。相當於暫時掛起當前執行緒 wait lockobj 表示等待當前被其他執行緒占用的lockobj。下面的 將會交替執行兩個執行緒 class ticktock console.write tick monitor...

多執行緒之間同步

1 posix訊號量 includeint sem init sem t sem,int pshared,unsigned int value int sem destroy sem t sem int sem wait sem t sem sem trywait sem t sem int sem...