2014-06-16 56 views
4

理想情况下,我想将阻塞队列添加到选择器,以便阻止从套接字读取或直到阻塞队列中出现一个项目。有没有办法在java中阻塞套接字和阻塞队列?

是否有一些更高级别的类似选择器的功能,在不同的类型上运行?

我可以走出俗气的道路,并烧掉2个线程,并且每个线程都单独阻塞,但是有一个函数可以阻塞这两种类型的对象。

是否有办法为每个被阻塞的对象抓取监视器,并使用类似选择器的对象来阻塞这两个对象?

回答

2

我不相信你们可以在两者上都有一个线程块。如果问题是你有一个工作者线程可以接受来自队列的任务或者直接从套接字接受任务,那么可能会有一个更清晰的独立线程从套接字中读取任务并将它们放入队列中。

+0

如果所有可能阻塞的东西都来自称为BlockingThing的东西,它将会更清洁。 :-) – stu