Java之執行緒通訊
執行緒通訊:一個執行緒與其他執行緒可以傳送資料
ex:
/**
* 執行緒通訊
* 業務邏輯:
* 兩個執行緒:
* 執行緒一:模擬養雞場的工人 ==>工作:檢查雞有沒有下蛋,所過下了,收蛋
* 執行緒二:模擬養雞場的雞 ==>工作:下蛋
*
* wait() : 使當前執行緒暫停。 可以由任何物件呼叫
* notify() : 使wait狀態的執行緒繼續執行 注意 :呼叫wait方法的物件 與 呼叫notify方法的物件是同一個
*
* 注意事項:呼叫wait方法與 notify方法的程式碼必須在同步程式碼塊中,並且這兩個同步程式碼塊加鎖的物件必須一致
* @author 鄭清
*/
public class Demo {
static boolean hasEggs = false;//值為false表示沒有蛋 值為true表示有蛋
public static void main(String[] args) {
Object obj = new Object();
Object obj2 = new Object();
Thread chicken = new Thread(){
public void run() {
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("雞下蛋了 ...");
hasEggs = true;
//讓worker執行緒繼續執行
synchronized (obj) {
obj.notify();
}
}
}
};
Thread worker = new Thread(){
@Override
public void run() {
while(true){
if(!hasEggs){
System.out.println("檢查雞下蛋了沒有 ...");
//當前執行緒暫停。 chicken執行緒下蛋之後繼續執行,通知當前執行緒繼續執行
try {
synchronized (obj) {
obj.wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}else{
System.out.println("收雞蛋 ...");
hasEggs = false;
}
}
}
};
chicken.start();
worker.start();
}
}
執行結果圖:
相關文章
- Java多執行緒-執行緒通訊Java執行緒
- Java執行緒通訊Java執行緒
- Java併發程式設計之執行緒安全、執行緒通訊Java程式設計執行緒
- Java多執行緒學習——執行緒通訊Java執行緒
- java多執行緒5:執行緒間的通訊Java執行緒
- 多執行緒之間通訊及執行緒池執行緒
- Java多執行緒學習(3)執行緒同步與執行緒通訊Java執行緒
- 程式通訊 執行緒通訊執行緒
- 說說Java執行緒間通訊Java執行緒
- java多執行緒間的通訊Java執行緒
- JUC之執行緒間的通訊執行緒
- 多執行緒之間的通訊執行緒
- Java-執行緒間通訊小結Java執行緒
- Java中的執行緒通訊詳解Java執行緒
- 執行緒4--執行緒間通訊執行緒
- iOS GCD執行緒之間的通訊iOSGC執行緒
- Java執行緒(九):Condition-執行緒通訊更高效的方式Java執行緒
- Java多執行緒/併發11、執行緒同步通訊:notify、waitJava執行緒AI
- Java的通過管道來實現執行緒通訊Java執行緒
- JAVA - 基於Socket的多執行緒通訊Java執行緒
- Java 執行緒間通訊 —— 等待 / 通知機制Java執行緒
- JUC之執行緒間定製化通訊執行緒
- Android開發之執行緒間通訊Android執行緒
- libuv執行緒通訊執行緒
- 執行緒間的通訊執行緒
- 執行緒通訊初探 (轉)執行緒
- java多執行緒:執行緒間通訊——生產者消費者模型Java執行緒模型
- 【Java】【多執行緒】兩個執行緒間的通訊、wait、notify、notifyAllJava執行緒AI
- 徹底明白Java的多執行緒-執行緒間的通訊(2)(轉)Java執行緒
- 徹底明白Java的多執行緒-執行緒間的通訊(1)(轉)Java執行緒
- Java多執行緒之執行緒中止Java執行緒
- java之執行緒Java執行緒
- java socket 通訊socketServer 服務端多執行緒JavaServer服務端執行緒
- Java中快如閃電的執行緒間通訊Java執行緒
- Android小知識-Java多執行緒相關(執行緒間通訊)上篇AndroidJava執行緒
- Java 多執行緒學習(執行緒通訊——消費者和生產者)Java執行緒
- Java多執行緒學習(五)執行緒間通訊知識點補充Java執行緒
- 子執行緒與UI執行緒的通訊(委託)執行緒UI