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 相关文章推荐
Python3基础之条件与循环控制实例解析
Aug 13 Python
Python正则表达式匹配ip地址实例
Oct 09 Python
在Python中使用sort()方法进行排序的简单教程
May 21 Python
Python实现约瑟夫环问题的方法
May 03 Python
python中os和sys模块的区别与常用方法总结
Nov 14 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
Feb 11 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
Apr 09 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
python如何求圆的面积
Jul 01 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
Jul 30 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 has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
php和asp语法上的区别总结
2019/05/12 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
11款基于Javascript的文件管理器
2009/10/25 Javascript
js 编写规范
2010/03/03 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
layui分页效果实现代码
2017/05/19 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
Python 复平面绘图实例
2019/11/21 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
DJI全球:DJI Global
2021/03/15 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
文职个人求职信范文
2013/09/23 职场文书
教师岗位职责
2013/11/17 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
MySQL创建管理RANGE分区
2022/04/13 MySQL
详解MySQL的内连接和外连接
2023/05/08 MySQL