首页 > 解决方案 > 同时运行4个线程,如果完成执行1个线程然后执行新线程?

问题描述

我有 30 个任务。我想同时运行 4 个线程来执行 4 个第一个任务。如果任何线程完成,我想执行下一个线程,它总是同时有 4 个线程

当我完成 28 个任务(7 次)时,我只做 2 个任务(2 个线程)如何解决?我使用线程命名空间谢谢

标签: multithreading

解决方案


您在这里没有提到任何特定的语言,但如果您使用的是 java,这是 ThreadPoolExecutor 的经典用例。

如果您使用其他一些编码语言,您可以拥有自己的简化 ThreadPoolExecutor 实现。基本上:

  1. 要执行的任务的线程安全列表
  2. 4个线程从队列中读取并执行任务
  3. 为您的线程实现终止逻辑(如果线程发现队列为空或可能等待一段时间然后重试,您可能希望终止)

推荐阅读