前言:
目前咱们对“pythonpoolapply”可能比较着重,你们都想要知道一些“pythonpoolapply”的相关内容。那么小编也在网上搜集了一些有关“pythonpoolapply””的相关文章,希望姐妹们能喜欢,大家快快来学习一下吧!1、pool.apply()方法是阻塞的,就是等待当前子进程执行完毕后,在执行下一个进程。首先主进程开始运行,碰到子进程,操作系统切换到子进程,等待子进程运行结束后,在切换到另外一个子进程,直到所有子进程运行完毕。然后在切换到主进程,运行剩余的部分。
2、poll.join()前必须用poll.close()方法。
代码运行如下:
from multiprocessing import Processfrom multiprocessing import Poolimport osdef task(taskname): #定义任务函数task print("开始做任务,任务名称是:{},任务进程号码是:{},父进程号是:{}".format(taskname,os.getpid(),os.getppid()))container=[]def callback_func(n): container.append(n)if __name__=='__main__': #相当于本py文件被引用时,下面的代码不会自动被执行 pool=Pool(7) #设置7个进程池 tasks=["唱歌","跳舞","打台球","打足球","打羽毛球"] #设置任务列表 for task1 in tasks: #遍历任务列表tasks里的任务task1 pool.apply(task,args=(task1,)) #阻塞式进程,返回被进程调用任务task1的返回值 pool.close() # 关闭进程池,表示不能在往进程池中添加进程 pool.join() # 等待进程池中的所有进程执行完毕,必须在close()之后调用 print("进程执行完毕") #进程池结束后,打印进程执行完毕
代码运行如下:
开始做任务,任务名称是:唱歌,任务进程号码是:13604,父进程号是:9620
开始做任务,任务名称是:跳舞,任务进程号码是:3236,父进程号是:9620
开始做任务,任务名称是:打台球,任务进程号码是:9812,父进程号是:9620
开始做任务,任务名称是:打足球,任务进程号码是:2948,父进程号是:9620
开始做任务,任务名称是:打羽毛球,任务进程号码是:13604,父进程号是:9620
进程执行完毕
图片示例如下:
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #pythonpoolapply