1. 首页
  2. Python

python的阻塞式进程pool.apply

“u003Cdivu003Eu003Cpu003E1、pool.apply()方法是阻塞的,就是等待当前子进程执行完毕后,在执行下一个进程。首先主进程开始运行,碰到子进程,操作系统切换到子进程,等待子进程运行结束后,在切换到另外一个子进程,直到所有子进程运行完毕。然后在切换到主进程,运行剩余的部分。u003Cu002Fpu003Eu003Cpu003E2、poll.join()前必须用poll.close()方法。u003Cu002Fpu003Eu003Cpu003E代码运行如下:u003Cu002Fpu003Eu003Cpreu003Efrom multiprocessing import Processu003Cbru003Efrom multiprocessing import Poolu003Cbru003Eimport osu003Cbru003Edef task(taskname): #定义任务函数tasku003Cbru003E print(“开始做任务,任务名称是:{},任务进程号码是:{},父进程号是:{}”.format(taskname,os.getpid(),os.getppid()))u003Cbru003Econtainer=[]u003Cbru003Edef callback_func(n):u003Cbru003E container.append(n)u003Cbru003Eif __name__==’__main__’: #相当于本py文件被引用时,下面的代码不会自动被执行u003Cbru003E pool=Pool(7) #设置7个进程池u003Cbru003E tasks=[“唱歌”,”跳舞”,”打台球”,”打足球”,”打羽毛球”] #设置任务列表u003Cbru003E for task1 in tasks: #遍历任务列表tasks里的任务task1u003Cbru003E pool.apply(task,args=(task1,)) #阻塞式进程,返回被进程调用任务task1的返回值u003Cbru003E pool.close() # 关闭进程池,表示不能在往进程池中添加进程u003Cbru003E pool.join() # 等待进程池中的所有进程执行完毕,必须在close()之后调用u003Cbru003E print(“进程执行完毕”) #进程池结束后,打印进程执行完毕u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E代码运行如下:u003Cu002Fpu003Eu003Cpu003E开始做任务,任务名称是:唱歌,任务进程号码是:13604,父进程号是:9620u003Cu002Fpu003Eu003Cpu003E开始做任务,任务名称是:跳舞,任务进程号码是:3236,父进程号是:9620u003Cu002Fpu003Eu003Cpu003E开始做任务,任务名称是:打台球,任务进程号码是:9812,父进程号是:9620u003Cu002Fpu003Eu003Cpu003E开始做任务,任务名称是:打足球,任务进程号码是:2948,父进程号是:9620u003Cu002Fpu003Eu003Cpu003E开始做任务,任务名称是:打羽毛球,任务进程号码是:13604,父进程号是:9620u003Cu002Fpu003Eu003Cpu003E进程执行完毕u003Cu002Fpu003Eu003Cpu003E图片示例如下:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F6c94ee77adad477683003dc10663eff7″ img_width=”832″ img_height=”743″ alt=”python的阻塞式进程pool.apply” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cu002Fdivu003E”

原文始发于:python的阻塞式进程pool.apply

主题测试文章,只做测试使用。发布者:~那﹑男人是我的命﹪,转转请注明出处:http://www.cxybcw.com/13058.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code