我在https://github.com/gresrun读到了关于Jesque的内容,我想了解它是如何在巨大的有效载荷下执行的。是排队作业以创建Job类实例然后使用Thread启动worker的唯一方法还是有其他方法吗?我对使用java.lang.Thread对象持怀疑态度,就像在此链接上的示例中一样,对于数据负载很大的批处理作业。
答案 0 :(得分:0)
实际上在没有控制的情况下产生线程绝不是一个好主意。
我建议将你的工作人员放在BlockingQueue中,然后产生非常有限数量的线程(尽可能多的CPU,以减少争用)以启动这些工作人员。工作完成后,线程会选择一个新工作人员并再次启动该过程。一旦队列中没有工作人员,线程就会挂起队列,等待新工作人员。
您可以查看Thread Pool Pattern