系统相关
首页 > 系统相关> > 关于进程里面的apply和apply_async的理解

关于进程里面的apply和apply_async的理解

作者:互联网

在多进程中,开辟pool的进程池

from multiprocessing import Pool
import os, time, random

def worker(msg):
start = time.time()
print("%s开始执行,进程号为%d"%(msg,os.getpid()))
time.sleep(random.random()*2)
stop = time.time()
print(msg,"执行完毕,耗时%0.2f"%(stop-start))

def main():
po = Pool(3)
for i in range(10):
po.apply_async(worker,(i,))
print("-----start-------")
po.close()
po.join()
print("-------end----------")

if __name__ == '__main__':
main()
使用apply_async执行之后,各进程会根据是否的到分配进而执行,不会按照顺序进行执行,属于是谁拿到谁用一个进程在执行到结束过程中,可能会穿插有其他进程的执行和结束

而使用apply,进程会按照顺序执行,这就会浪费大量的时间在进程等待完成中,比较消耗时间。

标签:__,async,print,time,进程,apply,po
来源: https://www.cnblogs.com/yeziblog/p/16542880.html