[英]Blocked communication between Threads
正如我的標題所說,我必須實現一個程序,其中線程通過發送消息(可序列化對象)相互通信。 事實是,如果沒有消息等待,我希望阻止線程。 我已經在Google上查了一下,我找到了2個解決方案:第一個使用ObjectStream和PipedStream,第二個使用BlockingQueue。 我的問題是2個解決方案似乎不是最好的解決方案,因為PipedStream有很多錯誤(我在測試時有很多錯誤)並且當隊列為空時BlockingQueue不會阻塞線程。
那么每個人都能解決我的問題嗎?
提前致謝 ;)
BlockingQueue的take方法確實等待
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html#take()
這基本上是生產者/消費者,其中一個線程可以是生產者和消費者之一或兩者。 我相信BlockingQueue
為您提供所需的解決方案( http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html )。 特別是,看看put()
和take()
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.