Python3-异步进程回调函数(callback())介绍


Posted in Python onMay 02, 2020

废话不多说,大家之家看代码吧!

#异步
'''
举例:
你喊你朋友吃饭,你朋友正忙,
如果你一直在那等他,等你朋友忙完了,你们一块去。--同步调用

你喊你朋友吃饭,你朋友正忙,
如果你自己做你自己的事,你朋友忙完,找到你,一块去吃饭。--异步调用

'''
# from bs4 import BeautifulSoup
from multiprocessing import Process,Pool
import os
import time

#子进程任务
def download():
  print('__进程池中的进程——pid=%d,ppid=%d'%(os.getpid(),os.getppid()))
  for i in range(3):
    print('--文件--%d'%i)
    # time.sleep(1)
  return '下载完成!'

#主进程调用回调函数
def alterUser(msg):
  print("----callback func --pid=%d"%os.getpid())
  print(msg)

if __name__ == "__main__":
  p = Pool(3)
  p.apply_async(func=download,callback=alterUser)
  #当func执行完毕后,return的东西会给到回调函数callback
  print("---start----")
  p.close()#关闭进程池,关闭后,p不再接收新的请求。
  p.join()
  print("---end-----")

/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/apple/PycharmProjects/stage4/thread/t19.py
---start----
__进程池中的进程——pid=6087,ppid=6086
--文件--0
--文件--1
--文件--2
----callback func --pid=6086
下载完成!
---end-----

补充知识:Python 线程开启多任务及回调函数

不说废话了,看代码吧!

# coding:utf-8
from time import sleep
import thread

def long_io(cb):
  print "开始调用long_IO"

  def func(callback):
    print "start long_IO"
    sleep(2)
    callback(1)
    print "end long_IO "
  thread.start_new_thread(func, (cb,))
  print "long_IO函数返回"

def on_finish(ret):
  print "调用了回调函数"
  print "ret %s" % ret
  print "结束了回调函数"

def req_a():
  print "start calling a"
  long_io(on_finish)
  print "end a"

def req_b():
  print "start calling b"
  sleep(1)
  print "end b"

# 同步概念:
if __name__ == '__main__':
  """模拟主循环调度"""
  req_a()
  print '-------------------'
  req_b()
  while True:
    pass

以上这篇Python3-异步进程回调函数(callback())介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
python异常和文件处理机制详解
Jul 19 Python
python实现八大排序算法(2)
Sep 14 Python
解决python3 json数据包含中文的读写问题
May 10 Python
Python检测网络延迟的代码
May 15 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 Python
详解Python 调用C# dll库最简方法
Jun 20 Python
python时间日期操作方法实例小结
Feb 06 Python
python实现飞船游戏的纵向移动
Apr 24 Python
python中如何打包用户自定义模块
Sep 23 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 #Python
判断Threading.start新线程是否执行完毕的实例
May 02 #Python
python中threading开启关闭线程操作
May 02 #Python
浅谈python3打包与拆包在函数的应用详解
May 02 #Python
构建高效的python requests长连接池详解
May 02 #Python
如何基于windows实现python定时爬虫
May 01 #Python
如何基于python实现不邻接植花
May 01 #Python
You might like
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
Django框架 信号调度原理解析
2019/09/04 Python
Python Process多进程实现过程
2019/10/22 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
应届本科生推荐信范文
2013/12/25 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
单位租房协议书范本
2014/12/04 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
甲午风云观后感
2015/06/02 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
MySQL七种JOIN类型小结
2021/10/24 MySQL
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL