繁体   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