python进程池Pool中apply方法与apply_async方法的区别

 更新时间:2024年02月24日 09:17:48   作者:小瓶盖的猪猪侠  
这篇文章主要介绍了python进程池Pool中apply方法与apply_async方法的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

在掌握apply方法与apply_async的区别之前,需要了解阻塞和非阻塞的区别

阻塞

阻塞好比过独木桥,前面人不走,后面人就无法先前走,只有前面人过了独木桥,后面人才能继续向前走

非阻塞

非阻塞的逻辑和阻塞相反,就是前面人不走,你就在旁边待着,让后面人先走,

apply就是属于上面的阻塞模式,apply_async属于非阻塞模式

1.apply实例

import multiprocessing
def fun(name):
    print(name)


if __name__=="__main__":
    pool = multiprocessing.Pool(3)
    for i in range(1,6):
        st = "start {}".format(i)
        pool.apply(func=fun,args=(st,))

    print("this is flag!")
    pool.close()
    pool.join()

通过下面的执行结果的截图可以发现,print("this is flag!")在线程池里的任务执行完毕后才执行

2.apply_async实例

import multiprocessing
def fun(name):
    print(name)


if __name__=="__main__":
    pool = multiprocessing.Pool(3)
    for i in range(1,6):
        st = "start {}".format(i)
        pool.apply_async(func=fun,args=(st,))

    print("this is flag!")
    pool.close()
    pool.join()

apply_async中的print("this is flag!")代码是在进程池之前执行

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python 实现GUI(图形用户界面)编程详解

    python 实现GUI(图形用户界面)编程详解

    今天小编就为大家分享一篇python 实现GUI(图形用户界面)编程详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • pytorch中的hook机制register_forward_hook

    pytorch中的hook机制register_forward_hook

    这篇文章主要介绍了pytorch中的hook机制register_forward_hook,手动在forward之前注册hook,hook在forward执行以后被自动执行,下面详细的内容介绍,需要的小伙伴可以参考一下
    2022-03-03
  • 基于keras输出中间层结果的2种实现方式

    基于keras输出中间层结果的2种实现方式

    今天小编就为大家分享一篇基于keras输出中间层结果的2种实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • PYQT5 vscode联合操作qtdesigner的方法

    PYQT5 vscode联合操作qtdesigner的方法

    这篇文章主要介绍了PYQT5 vscode联合操作qtdesigner的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • python实现图片转字符画

    python实现图片转字符画

    这篇文章主要为大家详细介绍了python实现图片转字符画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • python迭代dict的key和value的方法

    python迭代dict的key和value的方法

    今天小编就为大家分享一篇python迭代dict的key和value的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python GUI之如何使用tkinter控件

    Python GUI之如何使用tkinter控件

    今天带大家学习Python GUI的相关知识,文中对如何使用tkinter控件作了非常详细的介绍及代码示例,对正在学习python的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • 详解python时间模块中的datetime模块

    详解python时间模块中的datetime模块

    这篇文章主要为大家介绍了python时间模块中的datetime模块,datetime模块的接口则更直观、更容易调用,想要了解datetime模块的朋友可以参考一下
    2016-01-01
  • ConvNeXt实战之实现植物幼苗分类

    ConvNeXt实战之实现植物幼苗分类

    ConvNeXts由标准ConvNet模块构建,在准确性和可扩展性方面与 Transformer竞争,实现87.8% ImageNet top-1 准确率,在 COCO 检测和 ADE20K 分割方面优于 Swin Transformers。本文将利用ConvNeXt实现植物幼苗分类,需要的可以参考一下
    2022-01-01
  • Python基于xlutils修改表格内容过程解析

    Python基于xlutils修改表格内容过程解析

    这篇文章主要介绍了Python基于xlutils修改表格内容过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07

最新评论