Python3-異步進(jìn)程回調(diào)函數(shù)(callback())介紹
廢話不多說(shuō),大家之家看代碼吧!
#異步
'''
舉例:
你喊你朋友吃飯,你朋友正忙,
如果你一直在那等他,等你朋友忙完了,你們一塊去。--同步調(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的東西會(huì)給到回調(diào)函數(shù)callback
print("---start----")
p.close()#關(guān)閉進(jìn)程池,關(guān)閉后,p不再接收新的請(qǐng)求。
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ǔ)充知識(shí):Python 線程開(kāi)啟多任務(wù)及回調(diào)函數(shù)
不說(shuō)廢話了,看代碼吧!
# coding:utf-8
from time import sleep
import thread
def long_io(cb):
print "開(kāi)始調(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())介紹就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python selenium如何設(shè)置等待時(shí)間
這篇文章主要為大家詳細(xì)介紹了Python selenium如何設(shè)置等待時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實(shí)現(xiàn)
本文主要介紹了Matplotlib直方圖繪制中的參數(shù)bins和rwidth的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
Python中內(nèi)置函數(shù)filter函數(shù)用法詳解
filter()函數(shù)是Python內(nèi)置的另一個(gè)有用的高階函數(shù),filter()函數(shù)接收一個(gè)函數(shù)f和一個(gè)序列,函數(shù)f的作用是對(duì)每個(gè)元素進(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ì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
Matplotlib繪圖基礎(chǔ)之動(dòng)畫(huà)繪制詳解
matplotlib的動(dòng)畫(huà)一直是一個(gè)強(qiáng)大但使用頻率不高的功能,通過(guò)動(dòng)畫(huà)來(lái)展示數(shù)據(jù)和模型的變化過(guò)程,可使數(shù)據(jù)的可視化更加生動(dòng)形象,下面就跟隨小編一起學(xué)習(xí)一下Matplotlib是如何繪制動(dòng)畫(huà)的吧2023-08-08
人工智能——K-Means聚類(lèi)算法及Python實(shí)現(xiàn)
這篇文章主要介紹了人工智能——K-Means聚類(lèi)算法及Python實(shí)現(xiàn),一個(gè)能夠找到我圈出的這?些點(diǎn)集的算法,就被稱(chēng)為聚類(lèi)算法,下面就來(lái)看看文章具體的介紹吧2022-01-01
Python+OpenCV實(shí)現(xiàn)圖像的全景拼接
這篇文章主要為大家詳細(xì)介紹了Python+OpenCV實(shí)現(xiàn)圖像的全景拼接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
python sleep和wait對(duì)比總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于python sleep和wait對(duì)比總結(jié)內(nèi)容,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。2021-02-02
Python標(biāo)準(zhǔn)庫(kù)shutil用法實(shí)例詳解
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)shutil用法,結(jié)合實(shí)例形式分析了shutil庫(kù)針對(duì)文件與文件夾各種常見(jiàn)操作技巧與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2018-08-08

