关于进程里面的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,进程会按照顺序执行,这就会浪费大量的时间在进程等待完成中,比较消耗时间。

__EOF__

本文作者YEZI-
本文链接https://www.cnblogs.com/yeziblog/p/16542880.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   YEER-  阅读(407)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示