簡體   English   中英

線程之間的通信被阻止

[英]Blocked communication between Threads

正如我的標題所說,我必須實現一個程序,其中線程通過發送消息(可序列化對象)相互通信。 事實是,如果沒有消息等待,我希望阻止線程。 我已經在Google上查了一下,我找到了2個解決方案:第一個使用ObjectStream和PipedStream,第二個使用BlockingQueue。 我的問題是2個解決方案似乎不是最好的解決方案,因為PipedStream有很多錯誤(我在測試時有很多錯誤)並且當隊列為空時BlockingQueue不會阻塞線程。

那么每個人都能解決我的問題嗎?

提前致謝 ;)

這基本上是生產者/消費者,其中一個線程可以是生產者和消費者之一或兩者。 我相信BlockingQueue為您提供所需的解決方案( http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html )。 特別是,看看put()take()方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM