Python multiprocessing - 检查每个进程的状态

标签 python process multiprocessing

我想知道是否可以检查每个进程需要多长时间。
例如,有四名 worker ,工作应该不超过 10 秒,但其中一名 worker 需要超过 10 秒。有没有办法在 10 秒后和进程完成工作之前发出警报。
我最初的想法是使用管理器,但似乎我必须等到流程完成。
非常感谢。

最佳答案

您可以在尝试加入后检查进程是否存活。不要忘记设置超时,否则它会等到作业完成。

给你一个简单的例子

from multiprocessing import Process
import time

def task():
    import time
    time.sleep(5)

procs = []

for x in range(2):
    proc = Process(target=task)
    procs.append(proc)
    proc.start()

time.sleep(2)

for proc in procs:
    proc.join(timeout=0)
    if proc.is_alive():
        print "Job is not finished!"

关于Python multiprocessing - 检查每个进程的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39773377/

相关文章:

c# - 后台工作程序错误中的进程

来自 Abaqus/CAE 的 Python 多处理

c - PRNG 在所有进程中返回相同的值

python - 将 stdout 重定向到 multiprocessing.Pipe 会引发错误

Python将字典传递给多处理中的进程

python - 通过亚马逊产品 api 的子类别的销售排名(最好在使用 bottlenose 的 python 中)

python - mypy 如何忽略源文件中的一行?

python - MySQL LOAD DATA LOCAL INFILE Python

python - 在python和空字符串中排序

kernel - 为什么/proc/PID/status 中的进程名称与包名称或 ps 命令不匹配