Java執行緒間通訊

2021-06-21 20:57:35 字數 735 閱讀 6522

要求用子執行緒和主線程實現 子執行緒輸出20次,主線程輸出50次,然後再子執行緒輸出20次,主線程輸出50次,如此迴圈20次

1、建立乙個用於輸出的業務類(business)

class business

catch (interruptedexception e)

}for(int i = 0; i < 10; i++)

issub = false;

//喚醒等待的執行緒

this.notify();

}/**

* 主線程的輸出方法

* @param loop 總的迴圈次數

*/public synchronized void main(int loop)

catch (interruptedexception e)

}for(int i = 0; i < 20; i++)

issub = true;

//喚醒等待的執行緒

this.notify();

}}

2、在子執行緒和主線程中呼叫business類的例項物件輸出

public static void main(string args)

} });

subthread.start();

for(int i = 0; i < 50; i++)

}

java執行緒間通訊

執行緒間通訊 其實就是多個執行緒在操作同乙個資源,但是操作的動作不同 等待喚醒機制 wait notify notifyall 都是用在同步中,因為要對持有監視器 鎖 的執行緒操作。所以要是用在同步中,因為只有同步才具有鎖。等待喚醒必須是同乙個鎖,而鎖可以是任意物件,所以可以被任意物件呼叫的方法定義...

java執行緒間通訊

執行緒間進行輸入 輸出通訊最常用的方式是 管道 方式。乙個執行緒從管道一端寫入資料,另乙個執行緒從管道另一端讀出資料。public class pipedio class pipesender extends thread public void run catch ioexception e cl...

Java執行緒間通訊

對於我們的銀行賬戶,兩個執行緒之間並沒有聯絡,這就會出現餘額不足但是還能取錢的狀況,為了解決這個問題,我們就使用執行緒間通訊來解決 wait 方法 中斷方法的執行,使執行緒等待 notify 方法 喚醒處於等待的某一線程,使其等待結束 notifyall 方法 喚醒處於等待的所有執行緒,使其等待結束...