日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 多进程multiprocessing 如何获取子进程的返回值?进程池pool,apply_async(),get(),

發布時間:2025/3/19 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 多进程multiprocessing 如何获取子进程的返回值?进程池pool,apply_async(),get(), 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

案例1

# -*- coding: utf-8 -*- """ @File : 20200318_攝像頭多進程流傳輸.py @Time : 2020/3/18 14:58 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ import datetime from multiprocessing import Pool import timedef test(p):time.sleep(1)print(datetime.datetime.now())return pif __name__ == "__main__":pool = Pool(processes=2)result = []for i in range(10):'''for循環執行流程:(1)添加子進程到pool,并將這個對象(子進程)添加到result這個列表中。(此時子進程并沒有運行)(2)執行子進程(同時執行10個)'''# Dontla 20200319 apply_async()是啥意思?result.append(pool.apply_async(test, args=(i,))) # 維持執行的進程總數為10,當一個進程執行完后添加新進程.pool.close()# Dontla 20200319 阻塞主程序等待子進程執行完成pool.join()'''遍歷result列表,取出子進程對象,訪問get()方法,獲取返回值。(此時所有子進程已執行完畢)'''for i in result:print(i.get())

結果:

D:\20191031_tensorflow_yolov3\python\python.exe C:/Users/SIQI/Desktop/test_multiprocessing/20200318_攝像頭多進程流傳輸.py 2020-03-24 08:56:15.331693 2020-03-24 08:56:15.331693 2020-03-24 08:56:16.332564 2020-03-24 08:56:16.332564 2020-03-24 08:56:17.333423 2020-03-24 08:56:17.333423 2020-03-24 08:56:18.334177 2020-03-24 08:56:18.334177 2020-03-24 08:56:19.334215 2020-03-24 08:56:19.334215 0 1 2 3 4 5 6 7 8 9Process finished with exit code 0

案例2

# -*- coding: utf-8 -*- """ @File : test4.py @Time : 2020/3/24 8:40 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ # -*- coding: utf-8 -*- """ @File : 20200318_攝像頭多進程流傳輸.py @Time : 2020/3/18 14:58 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ import datetime from multiprocessing import Pool import timedef test(p):time.sleep(1)print(datetime.datetime.now())return pif __name__ == "__main__":pool = Pool(processes=2)result = []for i in range(10):'''for循環執行流程:(1)添加子進程到pool,并將這個對象(子進程)添加到result這個列表中。(此時子進程并沒有運行)(2)執行子進程(同時執行10個)'''# Dontla 20200319 apply_async()是啥意思?# result.append(pool.apply_async(test, args=(i,))) # 維持執行的進程總數為10,當一個進程執行完后添加新進程.# get()是一個阻塞線程的方法?是的,要獲取函數結果,必須阻塞# print(pool.apply_async(test, args=(i,)).get())pool.apply_async(test, args=(i,)).get()# pool.close()# Dontla 20200319 阻塞主程序等待子進程執行完成# pool.join()'''遍歷result列表,取出子進程對象,訪問get()方法,獲取返回值。(此時所有子進程已執行完畢)'''# for i in result:# print(i.get())print('over') D:\20191031_tensorflow_yolov3\python\python.exe C:/Users/SIQI/Desktop/test_multiprocessing/test4.py 2020-03-24 09:05:54.157505 2020-03-24 09:05:55.157542 2020-03-24 09:05:56.157578 2020-03-24 09:05:57.157614 2020-03-24 09:05:58.158199 2020-03-24 09:05:59.158941 2020-03-24 09:06:00.159096 2020-03-24 09:06:01.159715 2020-03-24 09:06:02.160607 2020-03-24 09:06:03.161478 overProcess finished with exit code 0

參考文章1:python中使用多進程multiprocessing并獲取子進程的返回值

參考文章2:Python對進程Multiprocessing子進程返回值

總結

以上是生活随笔為你收集整理的python 多进程multiprocessing 如何获取子进程的返回值?进程池pool,apply_async(),get(),的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。