我试图在Python中编写一个无限期运行的进程,并且正确地生成" n"运行一些python代码的后台进程数。我不关心这些后台进程的输出/结果,但想知道它们何时终止,以便我总是有" n"进程正在运行我有什么想法可以提供这个或一些可以提供帮助的参考资料吗?
谢谢&问候, Azeem
答案 0 :(得分:3)
我会使用multiprocessing.Pool进行此类工作。您可以使用给定数量的工作进程创建一个池,并为它们分配python函数。
from multiprocessing import Pool
import time
def f(x):
print(x)
time.sleep(1)
print("finished", x)
pool = Pool(processes=4)
for x in xrange(10):
pool.apply_async(f, [x])
pool.close()
pool.join()
返回以下内容:
0
1
2
3
('finished', 0)
('finished', 1)
('finished', 2)
('finished', 3)
4
5
6
7
('finished', 5)
('finished', 7)
('finished', 4)
('finished', 6)
8
9
('finished', 8)
('finished', 9)