Python进程池如何使用

2025-11-22 12:07:59

1、启动Ubuntu虚拟机,在桌面空白处右键鼠标,打开终端。

Python进程池如何使用

2、使用Ubuntu系统自带的gedit编辑器创建‘pool.py’文件,并在文件写代码如下:

from multiprocessing import Pool

import os

def worker(ms):

print ('子进程id:%s,做%s事' %(os.getpid(),ms))

po = Pool(3)

for i in range(0,10):

po.apply_async(worker,(i,))

Python进程池如何使用

3、保存代码,在终端运行代码

python3 pool.py

会发现并没有打印出任何内容,因为主进程结束了。子进程还没执行到。

Python进程池如何使用

4、修改代码如下,主进程慢一点结束,就可以看到效果

from multiprocessing import Pool

import os,time

def worker(ms):

print ('子进程id:%s,做%s事' %(os.getpid(),ms))

po = Pool(3)

for i in range(0,10):

po.apply_async(worker,(i,))

time.sleep(5)

Python进程池如何使用

5、保存代码,在终端运行,就可以看到子进程在执行了,如下图所示

python3 pool.py

Python进程池如何使用

6、去掉第4步代码中的time.sleep延时,使用下面代码:

from multiprocessing import Pool

import os,time

def worker(ms):

print ('子进程id:%s,做%s事' %(os.getpid(),ms))

po = Pool(3)

for i in range(0,10):

po.apply_async(worker,(i,))

po.close()

po.join()

po.join()这行代码的意识是阻塞主进程的执行。

Python进程池如何使用

7、在终端运行代码,结果如下图所示,在子进程执行完成后,主进程才退出。

Python进程池如何使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢