Dor*_*hen 4 python multiprocessing
我得到了一个函数,它subprocess.Popen以下列方式调用一个进程:
def func():
...
process = subprocess.Popen(substr, shell=True, stdout=subprocess.PIPE)
timeout = {"value": False}
timer = Timer(timeout_sec, kill_proc, [process, timeout])
timer.start()
for line in process.stdout:
lines.append(line)
timer.cancel()
if timeout["value"] == True:
return 0
...
Run Code Online (Sandbox Code Playgroud)
我使用循环从其他函数调用此函数(例如 from range(1,100) ),如何使用多处理对函数进行多次调用?每次都会有几个进程并行运行
进程不相互依赖,唯一的限制是每个进程只能在一个索引上“工作”(例如,没有两个进程可以在索引 1 上工作)
谢谢你的帮助
只需将索引添加到您的Popen调用中,然后创建一个具有可用 CPU 内核数量的工作池。
import multiprocessing
def func(index):
....
process = subprocess.Popen(substr + " --index {}".format(index), shell=True, stdout=subprocess.PIPE)
....
if __name__ == '__main__':
p = multiprocessing.Pool(multiprocessing.cpu_count())
p.map(func, range(1, 100))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11481 次 |
| 最近记录: |