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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

5-14 进程池

發(fā)布時間:2025/7/25 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5-14 进程池 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

python中的進(jìn)程池

1.進(jìn)程池的概念

python中,進(jìn)程池內(nèi)部會維護(hù)一個進(jìn)程序列。當(dāng)需要時,程序會去進(jìn)程池中獲取一個進(jìn)程。

如果進(jìn)程池序列中沒有可供使用的進(jìn)程,那么程序就會等待,直到進(jìn)程池中有可用進(jìn)程為止。

2.進(jìn)程池的內(nèi)置方法

  • apply 從進(jìn)程池里取一個進(jìn)程并同步執(zhí)行
  • apply_async 從進(jìn)程池里取出一個進(jìn)程并異步執(zhí)行
  • terminate 立刻關(guān)閉進(jìn)程池
  • join 主進(jìn)程等待所有子進(jìn)程執(zhí)行完畢,必須在close或terminete之后
  • close 等待所有進(jìn)程結(jié)束才關(guān)閉線程池

同步是指一個進(jìn)程在執(zhí)行某個請求的時候,必須要到收到對方返回的信息才繼續(xù)執(zhí)行下去

異步是指進(jìn)程在執(zhí)行某個請求時,不管其他的進(jìn)程的狀態(tài),這個進(jìn)程就執(zhí)行后續(xù)操作;
當(dāng)有消息返回時系統(tǒng)會通知進(jìn)程進(jìn)行處理,這樣可以提高執(zhí)行的效率

例如:打電話就是同步通信,發(fā)信息就是異步通信。

3.進(jìn)程池的使用

代碼如下:

from multiprocessing import Pool import timedef func(args): time.sleep(1) #程序休眠1s print("%s------>%s"%(args,time.ctime())) #打印參數(shù)及時間 if __name__=="__main__": p1=Pool(2) #設(shè)定開啟2個進(jìn)程池 for i in range(10): p1.apply_async(func=func,args=(i,)) #設(shè)定異步執(zhí)行任務(wù) p1.close() #關(guān)閉進(jìn)程池 time.sleep(2) #程序休眠2s p1.terminate() #關(guān)閉進(jìn)程池 p1.join() #阻塞進(jìn)程池 print("ending") #打印結(jié)束語句

程序執(zhí)行結(jié)果:

0------>Thu Jul 20 20:18:43 2017 1------>Thu Jul 20 20:18:43 2017 ending

可以看到,在程序執(zhí)行過程中,關(guān)閉進(jìn)程池,則程序會立即停止,不會再繼續(xù)執(zhí)行后續(xù)語句。

4.修改程序,使程序能夠執(zhí)行全部的任務(wù)

代碼如下:

from multiprocessing import Pool import timedef func(args): time.sleep(1) #休眠1s print("%s------>%s"%(args,time.ctime())) #打印傳遞的參數(shù)及時間 if __name__=="__main__": p1=Pool(2) #定義2個進(jìn)程池 for i in range(10): #定義循環(huán)10次 p1.apply_async(func=func,args=(i,)) #異步執(zhí)行任務(wù) p1.close() #等待所有的任務(wù)都完成才關(guān)閉進(jìn)程池 p1.join() print("ending")

執(zhí)行結(jié)果如下:

0------>Thu Jul 20 20:19:12 2017 1------>Thu Jul 20 20:19:12 2017 2------>Thu Jul 20 20:19:13 2017 3------>Thu Jul 20 20:19:13 2017 4------>Thu Jul 20 20:19:14 2017 5------>Thu Jul 20 20:19:14 2017 6------>Thu Jul 20 20:19:15 2017 7------>Thu Jul 20 20:19:15 2017 8------>Thu Jul 20 20:19:16 2017 9------>Thu Jul 20 20:19:16 2017 ending

轉(zhuǎn)載于:https://www.cnblogs.com/yzxing/p/9038122.html

總結(jié)

以上是生活随笔為你收集整理的5-14 进程池的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。