Python3-異步進(jìn)程回調(diào)函數(shù)(callback())介紹
廢話不多說,大家之家看代碼吧!
#異步
'''
舉例:
你喊你朋友吃飯,你朋友正忙,
如果你一直在那等他,等你朋友忙完了,你們一塊去。--同步調(diào)用
你喊你朋友吃飯,你朋友正忙,
如果你自己做你自己的事,你朋友忙完,找到你,一塊去吃飯。--異步調(diào)用
'''
# from bs4 import BeautifulSoup
from multiprocessing import Process,Pool
import os
import time
#子進(jìn)程任務(wù)
def download():
print('__進(jìn)程池中的進(jìn)程——pid=%d,ppid=%d'%(os.getpid(),os.getppid()))
for i in range(3):
print('--文件--%d'%i)
# time.sleep(1)
return '下載完成!'
#主進(jìn)程調(diào)用回調(diào)函數(shù)
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)
#當(dāng)func執(zhí)行完畢后,return的東西會給到回調(diào)函數(shù)callback
print("---start----")
p.close()#關(guān)閉進(jìn)程池,關(guān)閉后,p不再接收新的請求。
p.join()
print("---end-----")
/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Users/apple/PycharmProjects/stage4/thread/t19.py
---start----
__進(jìn)程池中的進(jìn)程——pid=6087,ppid=6086
--文件--0
--文件--1
--文件--2
----callback func --pid=6086
下載完成!
---end-----
補(bǔ)充知識:Python 線程開啟多任務(wù)及回調(diào)函數(shù)
不說廢話了,看代碼吧!
# coding:utf-8
from time import sleep
import thread
def long_io(cb):
print "開始調(diào)用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函數(shù)返回"
def on_finish(ret):
print "調(diào)用了回調(diào)函數(shù)"
print "ret %s" % ret
print "結(jié)束了回調(diào)函數(shù)"
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__':
"""模擬主循環(huán)調(diào)度"""
req_a()
print '-------------------'
req_b()
while True:
pass
以上這篇Python3-異步進(jìn)程回調(diào)函數(shù)(callback())介紹就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實現(xiàn)
本文主要介紹了Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
Python中內(nèi)置函數(shù)filter函數(shù)用法詳解
filter()函數(shù)是Python內(nèi)置的另一個有用的高階函數(shù),filter()函數(shù)接收一個函數(shù)f和一個序列,函數(shù)f的作用是對每個元素進(jìn)行判斷,返回True或False,下面這篇文章主要給大家介紹了關(guān)于Python中內(nèi)置函數(shù)filter函數(shù)用法的相關(guān)資料,需要的朋友可以參考下2024-05-05
使用pycallgraph分析python代碼函數(shù)調(diào)用流程以及框架解析
這篇文章主要介紹了使用pycallgraph分析python代碼函數(shù)調(diào)用流程以及框架解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
人工智能——K-Means聚類算法及Python實現(xiàn)
這篇文章主要介紹了人工智能——K-Means聚類算法及Python實現(xiàn),一個能夠找到我圈出的這?些點集的算法,就被稱為聚類算法,下面就來看看文章具體的介紹吧2022-01-01
Python標(biāo)準(zhǔn)庫shutil用法實例詳解
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫shutil用法,結(jié)合實例形式分析了shutil庫針對文件與文件夾各種常見操作技巧與相關(guān)使用注意事項,需要的朋友可以參考下2018-08-08

