【问题标题】:python background processpython后台进程
【发布时间】:2016-01-29 21:20:06
【问题描述】:

我正在尝试用 Python 编写一个进程,它可以无限期地运行,并在后台产生恰好“n”个运行一些 python 代码的进程。我不关心这些后台进程的输出/结果,但想知道它们中的任何一个何时终止,以便我总是有“n”个进程在运行。有什么想法可以解决这个问题或一些可以提供帮助的参考资料吗?

感谢和问候, 阿齐姆

【问题讨论】:

  • 去检查multiprocessing模块

标签: python python-2.7 multiprocessing


【解决方案1】:

我会使用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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    相关资源
    最近更新 更多