我有一个名为 jobs 的数据库表和一些生产者服务,将数据插入到该表中。我需要创建一个消费者服务来处理这些数据。
我有一个 8 核 16 线程的服务器,我创建了一个 16 线程的线程池。
ExecutorService executorService = Executors.newFixedThreadPool(16);
我将从数据库中获取 16 条记录并将这些数据分发给消费者线程。所有线程完成其工作后,我将获取另外 16 条记录。(我真的不知道我的解决方案是否有效)
如何将这些任务分配给消费者线程?我需要使用BlockingQueue吗?
最佳答案
执行器服务有一个队列,可以在线程不可用时缓冲您的任务。 您需要编写另一个线程,该线程将定期向执行程序服务提交任务,并检查完成策略。即,执行程序服务队列是否已满需要处理。
关于java - 如何将任务分配给Java线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48884819/