multithreading - 同时运行4个线程,如果完成执行1个线程然后执行新线程?
问题描述
我有 30 个任务。我想同时运行 4 个线程来执行 4 个第一个任务。如果任何线程完成,我想执行下一个线程,它总是同时有 4 个线程
当我完成 28 个任务(7 次)时,我只做 2 个任务(2 个线程)如何解决?我使用线程命名空间谢谢
解决方案
您在这里没有提到任何特定的语言,但如果您使用的是 java,这是 ThreadPoolExecutor 的经典用例。
如果您使用其他一些编码语言,您可以拥有自己的简化 ThreadPoolExecutor 实现。基本上:
- 要执行的任务的线程安全列表
- 4个线程从队列中读取并执行任务
- 为您的线程实现终止逻辑(如果线程发现队列为空或可能等待一段时间然后重试,您可能希望终止)
推荐阅读
- c# - 如何从活动目录用户和用户组更新中获取 C# 应用程序的更新
- python - 从 conftest.py 调用时,浏览器没有为类下的所有测试用例初始化
- linux - 将过滤后的记录存储到相同的文件名时出错
- nlp - MFCC 是否取决于音频长度?
- python - 有什么方法可以更快地运行下面的代码?
- lambda - 如何为 PyGresSQL 库获取 python v3.8 Linux 二进制文件?
- c# - C#、Microsoft Graph:获取使用 OneDrive Business 同步的共享点库的本地路径
- angular - 如何以角度分割从url获取的字符串?
- pandas - 数据框应用集未删除重复值
- yii - 创建一个 Yii 1.1 博客应用程序,带有不喜欢的帖子选项