濮阳杆衣贸易有限公司

主頁 > 知識庫 > python Pool常用函數用法總結

python Pool常用函數用法總結

熱門標簽:房產電銷外呼系統(tǒng) 地圖制圖標注位置改變是移位嗎 315電話機器人廣告 上海機器人外呼系統(tǒng)哪家好 浙江電銷卡外呼系統(tǒng)好用嗎 地圖標注的意義點 蓋州市地圖標注 南京銷售外呼系統(tǒng)軟件 地圖標注微信發(fā)送位置不顯示

1、說明

apply_async(func[,args[,kwds]):使用非堵塞調用func(并行執(zhí)行,堵塞方式必須等待上一個過程退出才能執(zhí)行下一個過程),args是傳輸給func的參數列表,kwds是傳輸給func的關鍵詞參數列表。

close():關閉Pool,使之不再接受新任務。

terminate():無論任務是否完成,都要立即終止。

join():主進程堵塞,等待子進程退出,必須在close或terminate之后使用。

2、實例

#coding: utf-8
import multiprocessing
import time
 
 
def func(msg):
    print("msg:", msg)
    time.sleep(3)
    print("end")
 
 
if __name__ == "__main__":
    cores = multiprocessing.cpu_count()
    pool = multiprocessing.Pool(processes=cores)
    print("Adding tasks...")
    for i in range(cores):
        msg = "hello %d" %(i)
        pool.apply_async(func, (msg, ))   #維持執(zhí)行的進程總數為processes,當一個進程執(zhí)行完畢后會添加新的進程進去
    print("Starting tasks...")
    pool.close()
    pool.join()   #調用join之前,先調用close函數,否則會出錯。執(zhí)行完close后不會有新的進程加入到pool,join函數等待所有子進程結束
    print("Sub-process(es) done.")

實例擴展:

# -*- coding:utf-8 -*-
from multiprocessing import Pool
import os, time, random
def worker(msg):
  t_start = time.time()
  print("%s開始執(zhí)行,進程號為%d" % (msg,os.getpid()))
  # random.random()隨機生成0~1之間的浮點數
  time.sleep(random.random()*2) 
  t_stop = time.time()
  print(msg,"執(zhí)行完畢,耗時%0.2f" % (t_stop-t_start))
po = Pool(3) # 定義一個進程池,最大進程數3
for i in range(0,10):
  # Pool().apply_async(要調用的目標,(傳遞給目標的參數元祖,))
  # 每次循環(huán)將會用空閑出來的子進程去調用目標
  po.apply_async(worker,(i,))
print("----start----")
po.close() # 關閉進程池,關閉后po不再接收新的請求
po.join() # 等待po中所有子進程執(zhí)行完成,必須放在close語句之后
print("-----end-----")

運行結果

----start----
0開始執(zhí)行,進程號為21466
1開始執(zhí)行,進程號為21468
2開始執(zhí)行,進程號為21467
0 執(zhí)行完畢,耗時1.01
3開始執(zhí)行,進程號為21466
2 執(zhí)行完畢,耗時1.24
4開始執(zhí)行,進程號為21467
3 執(zhí)行完畢,耗時0.56
5開始執(zhí)行,進程號為21466
1 執(zhí)行完畢,耗時1.68
6開始執(zhí)行,進程號為21468
4 執(zhí)行完畢,耗時0.67
7開始執(zhí)行,進程號為21467
5 執(zhí)行完畢,耗時0.83
8開始執(zhí)行,進程號為21466
6 執(zhí)行完畢,耗時0.75
9開始執(zhí)行,進程號為21468
7 執(zhí)行完畢,耗時1.03
8 執(zhí)行完畢,耗時1.05
9 執(zhí)行完畢,耗時1.69
-----end-----

到此這篇關于python Pool常用函數用法總結的文章就介紹到這了,更多相關python Pool常用函數有哪些內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python中的內置函數max()和min()及mas()函數的高級用法
  • python print()函數的end參數和sep參數的用法說明
  • python處理emoji表情(兩個函數解決兩者之間的聯系)
  • 解決python2中unicode()函數在python3中報錯的問題
  • python繪圖subplots函數使用模板的示例代碼
  • python-opencv中的cv2.inRange函數用法說明
  • Python input()函數用法大全
  • python 如何用map()函數創(chuàng)建多線程任務
  • Python函數參數中的*與**運算符
  • 詳解python函數傳參傳遞dict/list/set等類型的問題
  • Python3去除頭尾指定字符的函數strip()、lstrip()、rstrip()用法詳解
  • Python進階之高級用法詳細總結

標簽:臨汾 雙鴨山 陽泉 克拉瑪依 赤峰 貴州 金華 日照

巨人網絡通訊聲明:本文標題《python Pool常用函數用法總結》,本文關鍵詞  python,Pool,常用,函數,用法,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python Pool常用函數用法總結》相關的同類信息!
  • 本頁收集關于python Pool常用函數用法總結的相關信息資訊供網民參考!
  • 推薦文章
    宜州市| 靖宇县| 太谷县| 都江堰市| 济宁市| 柳江县| 威远县| 康马县| 上高县| 达日县| 黄山市| 定州市| 西乌珠穆沁旗| 广德县| 刚察县| 商城县| 大埔区| 长宁县| 区。| 山丹县| 鹿泉市| 兴化市| 崇明县| 即墨市| 德兴市| 周口市| 高淳县| 固阳县| 鸡泽县| 忻州市| 葵青区| 咸丰县| 闵行区| 无极县| 修文县| 宁晋县| 夏津县| 内江市| 岚皋县| 昌吉市| 荃湾区|