1
我用線程創建了一個java程序,有時線程使用靜態方法,問題是該方法可能只能在此時運行一次。所以如果方法已經運行,它不應該再開始,而是等待然後重新開始。確保方法在當時運行
我用線程創建了一個java程序,有時線程使用靜態方法,問題是該方法可能只能在此時運行一次。所以如果方法已經運行,它不應該再開始,而是等待然後重新開始。確保方法在當時運行
您可以簡單地將該靜態方法標記爲,它將確保互斥:2個線程將無法同時運行,其中一個線程將不得不等待另一個線程完成方法的執行:
public static synchronized void method() {
//this part can only be executed by one thread at a time
}
這個符號相當於使用你的類的顯示器作爲操作的鎖,即:
class YourClass {
public static void method() {
synchronized(YourClass.class) {
//this part can only be executed by one thread at a time
}
}
}
「字」會幫助你
public static synchronized void method() {
....code here
notify();}
@格雷我澄清了它,沒有進入類加載器的考慮,因爲這可能會變得混亂;-) – assylias