[英]Java Worker Thread to Wait
我有一个线程在后台工作,但它并非总是有工作要做。 我希望它等待主线程传递数据,然后继续工作。
起初,我以为这就是wait()
和notify()
的用途,但它似乎反过来起作用。
我怎么做?
看我的评论 。
听起来好像您想要一个
BlockingQueue
-这是生产者-消费者问题的非常普遍的要求。 尽量不要重新发明轮子;-)
存在多种BlockingQueue
实现,例如,有界的ArrayBlockingQueue
,无界的LinkedBlockingQueue
,传递的SynchronousQueue
甚至是PriorityBlockingQueue
。 所有的BlockingDeque
和TransferQueue
也是BlockingQueue
; ;-)
我建议您使用ExecutorService。 我将队列与线程池结合在一起。
您向它提交任务,这些任务将在后台尽可能地执行,并且您可以根据需要获取结果。
ExecutorService service = Executors.newWhateverPool();
service.submit(new Runnable() { your task here });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.