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 functools模块学习总结
May 09 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
python模块之time模块(实例讲解)
Sep 13 Python
python实现决策树分类算法
Dec 21 Python
Python实现修改IE注册表功能示例
May 10 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 Python
Python实现学生管理系统(面向对象版)
Jun 24 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提取中文首字母
2008/04/09 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
php函数之子字符串替换 str_replace
2011/03/23 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
详解JavaScript对W3C DOM模版的支持情况
2015/06/16 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
7个jQuery最佳实践
2016/01/12 Javascript
谈一谈javascript闭包
2016/01/28 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
Python遍历目录中的所有文件的方法
2016/07/08 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python 字典的打印实现
2019/09/26 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
python palywright库基本使用
2021/01/21 Python
.net开发工程师面试题
2014/02/25 面试题
2015年安全生产责任书
2015/01/30 职场文书
鸟的天堂导游词
2015/01/31 职场文书
考研导师推荐信范文
2015/03/27 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
python中sys模块的介绍与实例
2021/04/17 Python