14 异步 回调函数
异步
- 同步调用就是你 喊 你朋友吃饭 ,你朋友在忙 ,你就一直在那等,等你朋友忙完了 ,你们一起去 (确定的)
- 异步调用就是你 喊 你朋友吃饭 ,你朋友说知道了 ,待会忙完去找你 ,你就去做别的了。(不确定什么时候去)
1)异步程序1:回调函数
from multiprocessing import Pool import time import os def test(): print("---进程池中的进程---pid=%d,ppid=%d--"%(os.getpid(),os.getppid())) for i in range(3): print("----%d---"%i) time.sleep(1) return "hahah" def test2(args): print("---callback func--pid=%d"%os.getpid()) print("---callback func--args=%s"%args) pool = Pool(3) pool.apply_async(func=test,callback=test2) time.sleep(5) print("----主进程-pid=%d----"%os.getpid())
2)异步2:执行回调函数
from multiprocessing import Pool import time import os def test(): print("---进程池中的进程---pid=%d,ppid=%d--"%(os.getpid(),os.getppid())) for i in range(3): print("----%d---"%i) time.sleep(1) return "hahah" def test2(args): print("---callback func--pid=%d"%os.getpid()) print("---callback func--args=%s"%args) pool = Pool(3) pool.apply_async(func=test,callback=test2) while True: time.sleep(1) print("----主进程-pid=%d----"%os.getpid())
python@ubuntu:~/python06/05-线程$ python3 11-异步.py ---进程池中的进程---pid=10982,ppid=10980-- ----0--- ----主进程-pid=10980---- ----1--- ----主进程-pid=10980---- ----2--- ----主进程-pid=10980---- ---callback func--pid=10980 ---callback func--args=hahah ----主进程-pid=10980---- ----主进程-pid=10980---- ----主进程-pid=10980---- ----主进程-pid=10980----