注意:
1.執行緒間的通訊,共享的資料一定要有同步**塊synchronized
2.一定要有wait和notify,而且二者一定是成對出現
3.生產者和消費者的執行緒實現一定是在while(true)裡面
public
class
basket
public
void
setempty
(boolean empty)
}
public
class
consumer
extends
thread
@override
public
void
run(
) system.out.
println
("開始消費");
system.out.
println
("消費完成");
basket.
setempty
(true);
//通知在這個共享物件上等待的執行緒
basket.
notify()
;}catch
(interruptedexception e)}}
}}
public
class
producer
extends
thread
@override
public
void
run(
) system.out.
println
("開始生產");
system.out.
println
("生產完成");
basket.
setempty
(false);
basket.
notify()
;}catch
(interruptedexception e)}}
}}
public
class
test
}
執行緒通訊 生產者 消費者模式
恢復內容開始 執行緒是作業系統中獨立的個體,但這些個體之間如果沒有特殊的處理就不能成為乙個整體。而執行緒間的通訊機制就是成為整體的必用方案。執行緒間的通訊會使系統的互動性更強,在提高cpu利用率的同時還會使程式設計師對各執行緒任務在處理的過程中進行有效的把控和監督。等待 通知機制 執行緒之間不是獨立...
執行緒間通訊 生產者消費者模型
所謂的執行緒間通訊,其實就是多個執行緒再操作同乙個資源,但是操作的動作不同。當某個執行緒進入synchronized塊後,共享資料的狀態不一定滿足該執行緒的需要,需要其他執行緒改變共享資料的狀態後才能執行,而由於當時執行緒對共享資源時獨佔的,它必須解除對共享資源的鎖定的狀態,通知其他執行緒可以使用該...
執行緒間通訊 生產者消費者實踐
簡單生產者消費者問題 現有兩個執行緒a b,對乙個初始值未零的數加減一的操作,不能為負數,二者必須要實現輪流操作 操作十次 就在前不久自己也遇到了乙個這樣的問題,但是沒有考慮到的是執行緒的通訊,利用迴圈完成的輪流執行,唉 慘,不多說了重新來!再一次 高內聚低耦合前提下實現執行緒操作資源類!資源類 c...