欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 多進程并行編程 ProcessPoolExecutor的實現(xiàn)

 更新時間:2019年10月11日 14:28:54   作者:颹蕭蕭  
這篇文章主要介紹了python 多進程并行編程 ProcessPoolExecutor的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

使用 ProcessPoolExecutor

from concurrent.futures import ProcessPoolExecutor, as_completed
import random

斐波那契數(shù)列

當(dāng) n 大于 30 時拋出異常

def fib(n):
  if n > 30:
    raise Exception('can not > 30, now %s' % n)
  if n <= 2:
    return 1
  return fib(n-1) + fib(n-2)

準(zhǔn)備數(shù)組

nums = [random.randint(0, 33) for _ in range(0, 10)]
'''
[13, 17, 0, 22, 19, 33, 7, 12, 8, 16]
'''

方案一:submit

submit 輸出結(jié)果按照子進程執(zhí)行結(jié)束的先后順序,不可控

 with ProcessPoolExecutor(max_workers=3) as executor:
    futures = {executor.submit(fib, n):n for n in nums}
    for f in as_completed(futures):
      try:
        print('fib(%s) result is %s.' % (futures[f], f.result()))
      except Exception as e:
        print(e)
'''
fib(13) result is 233.
fib(17) result is 1597.
fib(0) result is 1.
fib(22) result is 17711.
fib(19) result is 4181.
can not > 30, now 33
fib(7) result is 13.
fib(12) result is 144.
fib(8) result is 21.
fib(16) result is 987.

'''

等價寫法:

 with ProcessPoolExecutor(max_workers=3) as executor:
    futures = {}
    for n in nums:
      job = executor.submit(fib, n)
      futures[job] = n

    for job in as_completed(futures):
      try:
        re = job.result()
        n = futures[job]
        print('fib(%s) result is %s.' % (n, re))
      except Exception as e:
        print(e)
'''
fib(13) result is 233.
fib(17) result is 1597.
fib(0) result is 1.
fib(22) result is 17711.
can not > 30, now 33
fib(7) result is 13.
fib(19) result is 4181.
fib(8) result is 21.
fib(12) result is 144.
fib(16) result is 987.
'''

方案二:map

map 輸出結(jié)果按照輸入數(shù)組的順序

缺點:某一子進程異常會導(dǎo)致整體中斷

 with ProcessPoolExecutor(max_workers=3) as executor:
    try:
      results = executor.map(fib, nums)
      for num, result in zip(nums, results):
        print('fib(%s) result is %s.' % (num, result))
    except Exception as e:
      print(e)
'''
fib(13) result is 233.
fib(17) result is 1597.
fib(0) result is 1.
fib(22) result is 17711.
fib(19) result is 4181.
can not > 30, now 33
'''

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • pytorch中 gpu與gpu、gpu與cpu 在load時相互轉(zhuǎn)化操作

    pytorch中 gpu與gpu、gpu與cpu 在load時相互轉(zhuǎn)化操作

    這篇文章主要介紹了pytorch模型載入之gpu和cpu互轉(zhuǎn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python Websocket服務(wù)端通信的使用示例

    Python Websocket服務(wù)端通信的使用示例

    這篇文章主要介紹了Python Websocket服務(wù)端通信的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Python數(shù)據(jù)分析從入門到進階之分類算法全面教程

    Python數(shù)據(jù)分析從入門到進階之分類算法全面教程

    數(shù)據(jù)分析是處理和解釋數(shù)據(jù)以發(fā)現(xiàn)有用信息和洞察的過程,其中,分類算法是數(shù)據(jù)分析領(lǐng)域的一個重要組成部分,它用于將數(shù)據(jù)分為不同的類別或組,本文將介紹分類算法的基本概念和進階技巧,以及如何在Python中應(yīng)用這些算法,包括示例代碼和實際案例
    2023-11-11
  • Pytest+Allure使用示例教程

    Pytest+Allure使用示例教程

    Allure是開源的免費的自動化測試報告,支持Java,Python,我們來看看如何使用Python pytest與Allure整合,輸出漂亮的測試報告,這篇文章主要介紹了Pytest+Allure使用教程,需要的朋友可以參考下
    2023-12-12
  • Jupyter Notebook 如何修改字體和大小以及更改字體樣式

    Jupyter Notebook 如何修改字體和大小以及更改字體樣式

    這篇文章主要介紹了Jupyter Notebook 如何修改字體和大小以及更改字體樣式的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 分享4個方便且好用的Python自動化腳本

    分享4個方便且好用的Python自動化腳本

    自動化測試是把以人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的一種過程,直白的就是為了節(jié)省人力、時間或硬件資源,提高測試效率,這篇文章主要給大家分享介紹了3個方便且好用的Python自動化腳本,需要的朋友可以參考下
    2022-02-02
  • 我喜歡你 抖音表白程序python版

    我喜歡你 抖音表白程序python版

    我喜歡你!這篇文章主要為大家詳細(xì)介紹了抖音表白程序python版的實現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python?dataframe獲得指定行列實戰(zhàn)代碼

    python?dataframe獲得指定行列實戰(zhàn)代碼

    對于一個DataFrame,常常需要篩選出某列為指定值的行,下面這篇文章主要給大家介紹了關(guān)于python?dataframe獲得指定行列的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Python按條件刪除Excel表格數(shù)據(jù)的方法(示例詳解)

    Python按條件刪除Excel表格數(shù)據(jù)的方法(示例詳解)

    本文介紹基于Python語言,讀取Excel表格文件,基于我們給定的規(guī)則,對其中的數(shù)據(jù)加以篩選,將不在指定數(shù)據(jù)范圍內(nèi)的數(shù)據(jù)剔除,保留符合我們需要的數(shù)據(jù)的方法,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Python使用騰訊云API實現(xiàn)短信驗證碼功能

    Python使用騰訊云API實現(xiàn)短信驗證碼功能

    使用Python與騰訊云接口對接,實現(xiàn)短信驗證碼功能變得非常簡單,只需要幾行代碼就能夠輕松實現(xiàn)短信的發(fā)送,無須關(guān)心復(fù)雜的短信協(xié)議和底層實現(xiàn),讀者可以根據(jù)自己的實際需求,靈活使用騰訊云短信SDK提供的API來實現(xiàn)更豐富的短信功能
    2024-01-01

最新評論