4

我在https://github.com/gresrun上读到了 Jesque,我想了解它在巨大的有效负载下是如何执行的。排队作业以创建作业类的实例然后使用线程启动工作者的唯一方法是还是有其他方法?我对使用 java.lang.Thread 对象有点怀疑,就像在此链接的示例中为数据有效负载巨大的批处理作业所做的那样。

4

1 回答 1

0

实际上在没有控制的情况下生成线程从来都不是一个好主意。

我建议将您的工作人员放入 BlockingQueue 中,然后生成非常有限数量的线程(与您的 CPU 一样多,以减少争用)来启动这些工作人员。工作完成后,线程会选择一个新的工作人员并再次启动该过程。一旦队列中没有工人,线程就挂在队列上,等待新的工人。

你可以看看线程池模式

于 2014-07-07T10:15:54.047 回答