例如,当我只使用一个进程实例化Pool时,我运行了一些Python代码并意识到:
from multiprocessing.pool import Pool
from time import sleep
def f(i):
print(i)
sleep(10)
with Pool(1) as p:
p.map(f, [i for i in range(100)])实际上,目前正在运行五个进程。我还注意到了一个模式:如果我用1,2,3实例化Pool,.Python启动的进程数为5,6,7,.我很好奇:Pool是否使用三个过程进行管理?
发布于 2018-02-27 04:10:00
使用Pool(1),您将得到两个进程,主进程(pid 31070)和一个工作进程(pid 31071),但是主进程中有3个额外的线程/LWP (LWP/线程id 31072/31073/31074):
PID PPID LWP NLWP CMD
31070 21240 31070 4 python3 so_48968836_mp.py
31070 21240 31072 4 python3 so_48968836_mp.py
31070 21240 31073 4 python3 so_48968836_mp.py
31070 21240 31074 4 python3 so_48968836_mp.py
31071 31070 31071 1 python3 so_48968836_mp.py那三根线用于池工作人员的维护、异步任务和结果处理。
https://stackoverflow.com/questions/48968836
复制相似问题