进程池的回调函数callback
如下代码:
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(5)
pool.apply_async(func1, args=(10,))
pool.close()
pool.join()
结果是 in func1
这是通过回调函数就可以执行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(5)
pool.apply_async(func1, args=(10,), callback=func2)
pool.close()
pool.join()
打印结果:
in func1
in func2
100
这回调函数的作用就是将函数func1的返回值传给func2,并执行func2函数,所以不能在pool.apply_async里面单独给func2传值,func2接受的参数就是func1的返回值。
判断func2在子进程还是主进程:
from multiprocessing import Pool
import os def func1(n):
print('in func1', os.getpid())
return n*n def func2(nn):
print('in func2', os.getpid())
print(nn) if __name__ == "__main__":
print('主进程:', os.getpid())
pool = Pool(5)
pool.apply_async(func1, args=(10,), callback=func2)
pool.close()
pool.join()
打印结果:
主进程: 14688
in func1 11928
in func2 14688
100
func2在主进程里面。
所以回调函数就是回到主进程继续执行。
结束!
进程池的回调函数callback的更多相关文章
- Python 3 并发编程多进程之进程池与回调函数
Python 3 进程池与回调函数 一.进程池 在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间.多进程是实现并发的手段之一,需要注意 ...
- python语法基础-并发编程-进程-进程池以及回调函数
############### 进程池 ############## """ 进程池的概念 为什么会有进程池? 1,因为每次开启一个进程,都需要创建一个内存空间 ...
- python并发编程之多进程2-------------数据共享及进程池和回调函数
一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...
- python并发编程之多进程2-(数据共享及进程池和回调函数)
一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...
- python并发编程之多进程2数据共享及进程池和回调函数
一.数据共享 尽量避免共享数据的方式 可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实上Manager的功能远不止于此. 命令就是一 ...
- Python之网路编程之进程池及回调函数
一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...
- python中进程池和回调函数
一.数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的. 虽然进程间数据独立,但可以用过Manager实现数据共享,事实 ...
- Python 进程池的回调函数
import os from multiprocessing import Pool,Process def f1(n): print('进程池里面的进程id',os.getpid()) print( ...
- 进程池与回调函数与正则表达式和re爬虫例子
# 使用进程池的进程爬取网页内容,使用回调函数处理数据,用到了正则表达式和re模块 import re from urllib.request import urlopen from multipro ...
随机推荐
- Schaepher 博客目录
update: 2017-03-16 福州大学2015年秋软件工程实践课 软工课程作业目录 软工实践课程总结 团队博客 软件案例分析优秀链接汇总 Android Android学习笔记: (一):th ...
- oracle--Tracing PL/SQL subprogram calls with parameters values--Mahmoud Hatem,
https://mahmoudhatem.wordpress.com/2017/09/15/geeky-plsql-tracerprofiler-first-step/ https://mahmoud ...
- poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)
POI Excel 单元格内容类型判断并取值 以前用 cell.getCachedFormulaResultType() 得到 type 升级到4后获取不到了 换为:cell.getCellType( ...
- Windows上的字符转换之CP_ACP和CP_OEMCP
原文地址:http://blog.sina.com.cn/s/blog_53c1950a010158mw.html Windows API函数MultiByteToWideChar用于多字节编码字符串 ...
- IIS 网站 HTTP 转 HTTPS
最近需要做 http 链接转成 https 链接,所以就去弄了,现在记录下: 1.准备SSL证书 最开始的时候用的是腾讯云的免费证书,有效期1年,但只能绑定一个二级域名.测试成功后,就去阿里云购买了证 ...
- 【ASP.NET Core】从向 Web API 提交纯文本内容谈起
前些时日,老周在升级“华南闲肾回收登记平台”时,为了扩展业务,尤其是允许其他开发人员在其他平台向本系统提交有关肾的介绍资料,于是就为该系统增加了几个 Web API. 其中,有关肾的介绍采用纯文本方式 ...
- Python之练习数学运用代码
1.对数函数 import math import matplotlib.pyplot as plt import numpy as np if __name__ == '__main__': x = ...
- 免费ss账号网站
下面网址按排序顺序优先使用,数字越小优先级越高 1,https://io.freess.today/ 2,https://free-ss.site/ 3,https://ss.freess.org/ ...
- [转]Redis内部数据结构详解-sds
本文是<Redis内部数据结构详解>系列的第二篇,讲述Redis中使用最多的一个基础数据结构:sds. 不管在哪门编程语言当中,字符串都几乎是使用最多的数据结构.sds正是在Redis中被 ...
- spring 整合junit进行测试
如果想让junit和spring容器环境无缝对接的话,可以使用如下方式: import com.jd.ptest.service.ICronService; import org.junit.Test ...