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中cv2读取中文路径的问题
Dec 05 Python
Django 日志配置按日期滚动的方法
Jan 31 Python
python七夕浪漫表白源码
Apr 05 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
用Python绘制漫步图实例讲解
Feb 26 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
Mar 13 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 Python
python和go语言的区别是什么
Jul 20 Python
matplotlib实现数据实时刷新的示例代码
Jan 05 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
Django路由层如何获取正确的url
Jul 15 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
用PHP实现将GB编码转换为UTF8
2006/11/25 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
详解Nodejs之npm&package.json
2017/06/15 NodeJs
js脚本编写简单刷票投票系统
2017/06/27 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
python提取字典key列表的方法
2015/07/11 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
python统计文章中单词出现次数实例
2020/02/27 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
护士岗位职责
2014/02/16 职场文书
道路建设实施方案
2014/03/18 职场文书
公司运动会策划方案
2014/05/25 职场文书
机械加工与数控专业自荐书
2014/06/04 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
JavaScript 对象创建的3种方法
2021/11/17 Javascript