【发布时间】:2014-03-01 07:35:26
【问题描述】:
- 我有 100 多个任务要做,我可以循环执行,但这会很慢
- 我想通过线程来完成这些工作,比如说 10 个线程
- 作业之间没有依赖关系,每个作业都可以独立运行,失败则停止
- 我想让这些线程来接我的工作去做,总共不要超过10个线程,否则可能会伤害服务器
- 这些线程一直在做这些工作,直到全部完成
- 超时时停止线程中的作业
我在网上搜索这方面的信息,Threads::Pool,Threads::Queue...
但我不能确定哪一个更适合我的情况。谁能给我一些建议?
【问题讨论】:
-
作业会产生什么输出?文件?内存数据?如果是后者,它有多大/结构如何? Windows 还是非 Windows?
-
作业在应用服务上做down/up动作,不需要捕获输出,不需要文件输入,我需要做的就是将服务名称传递给函数,然后让命令停止/启动它。抱歉,我忘了说,它是在 Linux 上运行的
-
那我就用 Parallel::ForkManager。
-
谢谢你的建议,我试试看
标签: multithreading perl