繁体   English   中英

等待的Java Worker线程

[英]Java Worker Thread to Wait

我有一个线程在后台工作,但它并非总是有工作要做。 我希望它等待主线程传递数据,然后继续工作。

起初,我以为这就是wait()notify()的用途,但它似乎反过来起作用。

我怎么做?

我的评论

听起来好像您想要一个BlockingQueue -这是生产者-消费者问题的非常普遍的要求。 尽量不要重新发明轮子;-)

存在多种BlockingQueue实现,例如,有界的ArrayBlockingQueue ,无界的LinkedBlockingQueue ,传递的SynchronousQueue甚至是PriorityBlockingQueue 所有的BlockingDequeTransferQueue也是BlockingQueue ; ;-)

我建议您使用ExecutorService。 我将队列与线程池结合在一起。

您向它提交任务,这些任务将在后台尽可能地执行,并且您可以根据需要获取结果。

ExecutorService service = Executors.newWhateverPool();
service.submit(new Runnable() {  your task here });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM