java - 如何将任务分配给Java线程?

标签 java multithreading

我有一个名为 jobs 的数据库表和一些生产者服务,将数据插入到该表中。我需要创建一个消费者服务来处理这些数据。

我有一个 8 核 16 线程的服务器,我创建了一个 16 线程的线程池。

ExecutorService executorService = Executors.newFixedThreadPool(16);

我将从数据库中获取 16 条记录并将这些数据分发给消费者线程。所有线程完成其工作后,我将获取另外 16 条记录。(我真的不知道我的解决方案是否有效)

如何将这些任务分配给消费者线程?我需要使用BlockingQueue吗?

最佳答案

执行器服务有一个队列,可以在线程不可用时缓冲您的任务。 您需要编写另一个线程,该线程将定期向执行程序服务提交任务,并检查完成策略。即,执行程序服务队列是否已满需要处理。

关于java - 如何将任务分配给Java线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48884819/

相关文章:

java - 在 JUnit4 中断言两个列表相等

java - 通过Spark覆盖HDFS文件/目录

python - 使用python时gevent发生线程异常

android startActivityForResult 正在终止父 Activity 中的线程

java - Spring Boot Thymeleaf 无法解析模板

java - 调用或执行sql查询时生成的数据数量

java - 如何检查 android 库中的可调试或调试构建类型?

Python:使用 subprocess.Popen 执行长时间运行的进程,杀死它并访问其输出

multithreading - 随着 Parallel.Foreach 循环的继续,线程数减少

iPhone或 cocoa : Handling order of multiple HTTP requests