python进程池中的回调函数

这篇具有很好参考价值的文章主要介绍了python进程池中的回调函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是回调函数

指定一个任务后、并且指定一个回调函数后,当指定的进程池执行的任务结束后,会将该任务的返回值作为回调函数的参数传递到回调函数中,并且回调函数得以执行

回调函数在主进程中被执行

 import os
 from multiprocessing import Pool


 def func1(n):
     print('in func1', os.getpid())
     return n * n

 def func2(nn):
     print('in func2 %s ' % os.getpid())
     print(nn)

 if __name__ == '__main__':
     pool = Pool(4)
     pool.apply_async(func1, args=(10, ), callback=func2)    # calback为回调参数,可以指定一个回调函数,这里指定回调函数为func2
     pool.close()
     pool.join()
     print(os.getpid())

10个任务func1投入到含有4个进程的进程池中异步执行,并且指定回调函数为func2,当投入到进程池中的每个任务执行完后,都会将返回值作为参数返回给回调函数,并且回调函数在主进程得以执行
执行了10次func1、10次func2

from multiprocessing import Pool

def func1(n):
    print('in func1')
    return n * n

def func2(nn):
    print('in func2')
    print(nn)

if __name__ == '__main__':
    pool = Pool(4)
    for i in range(10):
        pool.apply_async(func1, args=(10, ), callback=func2)    # calback为回调参数,可以指定一个回调函数,指定进程池执行的任务结束后,会将任务的返回值作为参数传递给回调函数,并执行回调函数,回调函数是在主进程中得以执行的
    pool.close()
    pool.join()

一般在爬虫中,用到回调函数比较多,并且是将访问网页、下载网页的过程放到子进程中去做,分析数据,处理数据让回调函数去做,因为访问网页与下载网页有网络延时,而处理数据只占用很小的时间文章来源地址https://www.toymoban.com/news/detail-414296.html

到了这里,关于python进程池中的回调函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++中的回调函数

    C++中的回调函数是指将一个 函数作为参数 传递 给另一个函数 ,并在另一个函数中 调用 该函数。 这种技术被称为函数指针或函数对象。 回调函数通常用于 异步编程 中,例如事件处理程序、GUI编程、网络编程等。 在这些情况下,程序需要在某个事件发生时执行某些操作,

    2024年02月06日
    浏览(46)
  • C# 中的回调函数

    引言 回调函数是一种在编程中常用的概念,它在 C# 中扮演着重要的角色。本文将介绍回调函数的概念、语法和应用,并讨论如何设计优化和重用回调函数,以及它们在并发编程中的用途。 回调函数是指将一个函数作为参数传递给另一个函数,并在被调用函数执行完毕后,再

    2024年02月20日
    浏览(37)
  • Java中的回调函数 (callback) 及其应用

    回调函数在编程中是一种常见的设计模式,它允许一个函数在特定的时刻或条件下调用另一个函数。在Java中,我们可以通过接口和匿名内部类实现回调函数。本文将详细介绍Java中的回调函数,并提供相关代码示例。 回调函数是一种将函数作为参数传递给另一个函数的方法。

    2024年01月24日
    浏览(53)
  • 【C#进阶】C#中的委托、事件、回调函数、匿名函数和lambda表达式

    委托是一种类型,它可以存储对一个或多个方法的引用。它类似于C/C++中的函数指针,允许您将方法作为参数传递、存储和调用。 写法: delegate return_type delegate_name( ); return_type :表示委托所引用方法的返回类型。 delegate_name :表示委托的名称。 parameters :表示委托所引用方法

    2024年02月06日
    浏览(58)
  • 【C语言】深入解析C语言中的回调函数及其应用

    目录 什么是回调函数? 回调函数有什么作用? 额外的进阶用法? 1. 传递多个参数: 2. 回调函数和数据封装: 3. 函数指针的灵活性: 回调函数的概念可能有些抽象,让我们尝试用一个简单的生活场景来解释它。假设你有一项重要任务需要完成,但任务的一部分要依赖于其他

    2024年02月12日
    浏览(52)
  • python回调函数

    回调函数在各种编程函数中都是比较常见的,回调函数的出现主要是为了降低函数之间调用的耦合性,从而实现解耦。 简单来说,如果一个函数可以作为被传递就称这个函数为回调函数。 比如:func1(func2()),那么func2就是回调函数。此时,只需要知道func2这个函数的功能是什

    2024年02月02日
    浏览(39)
  • vue js 回调函数 异步处理 为什么要 let that = this

    1 异步就是开个事务( 只有主线程 等主线程空闲 ),用that 值 做处理,然后返回处理结果,而that的值是开启 事务那一刻 的this的值.而在主线程处理的时候,this的一直在变化, that的值保留在那一刻 ps 或是将本obj 传递给其他的obj使用处理 ps 开启新事务或开启新子线程都是 在新的ob

    2024年02月11日
    浏览(55)
  • 什么是 MySQL JDBC 连接池中最高效的连接检测语句?

    在回答这个问题之前,首先我们看看 MySQL 中有哪些常用的 JDBC 连接池: c3p0 DBCP Druid Tomcat JDBC Pool HikariCP 这些连接池中,c3p0 是一个老牌的连接池,很多流行框架,在其老版本中,都将 c3p0 作为默认的连接池。 DBCP 和 Tomcat JDBC Pool(Tomcat 的默认连接池)是 Apache 开源的。 Druid

    2024年02月04日
    浏览(47)
  • Python异步编程高并发执行爬虫采集,用回调函数解析响应

    异步技术是Python编程中对提升性能非常重要的一项技术。在实际应用,经常面临对外发送网络请求,调用外部接口,或者不断更新数据库或文件等操作。 这这些操作,通常90%以上时间是在等待,如通过REST, gRPC向服务器发送请求,通常可能等待几十毫秒至几秒,甚至更长。如

    2024年02月08日
    浏览(54)
  • Linux系统中的bash 进程和init进程还有systemd进程分别有什么作用,他们之间有什么联系?

    Linux系统中的bash进程、init进程和systemd进程都是一种守护进程(daemon),即在后台运行的进程,为系统提供各种服务。 bash 进程是 一种命令行解释器 ,它可以执行用户输入的命令或者脚本文件,提供用户与系统的交互界面。bash进程通常是用户登录后启动的,每个用户可以有

    2024年01月25日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包