日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/3/19 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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(),的全部內容,希望文章能夠幫你解決所遇到的問題。

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