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

python多進程并發(fā)的實現(xiàn)示例

 更新時間:2024年02月11日 09:40:24   作者:深度學習界扛把子  
python中的多線程無法利用多核優(yōu)勢,如果想要充分地使用多核CPU的資源,在python中大部分情況需要使用多進程,本文主要介紹了python多進程并發(fā)的實現(xiàn)示例,感興趣的可以了解一下

虛假的并發(fā),當你調(diào)用future.result()時,它會阻塞當前線程,直到任務完成并返回結果。因此,當你在循環(huán)中調(diào)用future.result()時,程序會按順序執(zhí)行任務,而不是并發(fā)執(zhí)行。

import concurrent.futures
import time

# 創(chuàng)建一個進程池
process_pool = concurrent.futures.ProcessPoolExecutor(max_workers=8)

# 定義任務函數(shù)
def task_function(task_id):
    print(f"Task {task_id} started")
    # 執(zhí)行任務的邏輯
    time.sleep(1)
    print(f"Task {task_id} completed")
    return 1
# 提交任務到進程池
def submit_task(task_id):
    future = process_pool.submit(task_function, task_id)
    return future

# 示例任務列表
task_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = []
# 提交任務到進程池,并等待任務完成
futures = []
t1 =time.time()
for task_id in task_list:
    future = submit_task(task_id)
    futures.append(future)
    # result.append(future.result())
# 等待進程池中的任務完成
concurrent.futures.wait(futures)
# 關閉進程池
t2 = time.time()
print(t2-t1,"s")
process_pool.shutdown()
print(result)

如果你想要實現(xiàn)并發(fā)執(zhí)行任務,并且在所有任務完成后獲取結果,可以使用concurrent.futures.as_completed()方法來實現(xiàn)。這個方法返回一個迭代器,可以按照任務完成的順序獲取結果。

import concurrent.futures
import time

# 創(chuàng)建一個進程池
process_pool = concurrent.futures.ProcessPoolExecutor(max_workers=8)

# 定義任務函數(shù)
def task_function(task_id):
    print(f"Task {task_id} started")
    # 執(zhí)行任務的邏輯
    time.sleep(1)
    print(f"Task {task_id} completed")
    return task_id

# 提交任務到進程池
def submit_task(task_id):
    future = process_pool.submit(task_function, task_id)
    return future

# 示例任務列表
task_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = []

# 提交任務到進程池,并等待任務完成
futures = []
t1 = time.time()
for task_id in task_list:
    future = submit_task(task_id)
    futures.append(future)

# 獲取任務結果
for future in concurrent.futures.as_completed(futures):
    result.append(future.result())

t2 = time.time()
print(t2 - t1, "s")
print(result)

# 關閉進程池
process_pool.shutdown()

到此這篇關于python多進程并發(fā)的實現(xiàn)示例的文章就介紹到這了,更多相關python多進程并發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python splitlines使用技巧

    Python splitlines使用技巧

    Python中的splitlines用來分割行。當傳入的參數(shù)為True時,表示保留換行符 \n。通過下面的例子就很明白了
    2008-09-09
  • python使用TensorFlow進行圖像處理的方法

    python使用TensorFlow進行圖像處理的方法

    本篇文章主要介紹了使用TensorFlow進行圖像處理的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 使用python獲取PDF頁面的大小、方向和旋轉角度

    使用python獲取PDF頁面的大小、方向和旋轉角度

    在文檔管理和自動化領域,了解PDF文檔的內(nèi)在屬性(如頁面大小、方向和旋轉角度)對于確保一致的文檔處理和布局保真度至關重要,因為它們直接影響文檔的可讀性和用戶體驗,本文將展示如何使用Python代碼獲取PDF文檔中頁面的大小、方向和旋轉角度,需要的朋友可以參考下
    2024-09-09
  • Python爬蟲之UserAgent的使用實例

    Python爬蟲之UserAgent的使用實例

    今天小編就為大家分享一篇關于Python爬蟲之UserAgent的使用實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 使用Python開發(fā)Telegram?Bot的流程步驟

    使用Python開發(fā)Telegram?Bot的流程步驟

    Telegram?Bot?是一種可以與用戶交互的機器人應用程序,通過?Telegram?的?Bot?API?與服務器通信,它可以用來處理消息、執(zhí)行命令、提供服務,如通知提醒、數(shù)據(jù)查詢和自動化任務等,本文給大家介紹了如何用?Python?開發(fā)一個?Telegram?Bot,需要的朋友可以參考下
    2025-01-01
  • Python讀取配置文件的實戰(zhàn)操作

    Python讀取配置文件的實戰(zhàn)操作

    python代碼中配置文件是必不可少的內(nèi)容,常見的配置文件格式有很多中,ini、yaml、xml、properties、txt、py等,下面這篇文章主要給大家介紹了關于Python讀取配置文件的相關資料,需要的朋友可以參考下
    2023-04-04
  • Python報錯:NameError:?name?‘xxx‘?is?not?defined的解決辦法

    Python報錯:NameError:?name?‘xxx‘?is?not?defined的解決辦法

    這篇文章主要給大家介紹了關于Python報錯:NameError:?name?‘xxx‘?is?not?defined的解決辦法,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-06-06
  • Python實現(xiàn)批量圖片的切割

    Python實現(xiàn)批量圖片的切割

    本文主要介紹了Python實現(xiàn)批量圖片的切割,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-09-09
  • python 爬蟲如何正確的使用cookie

    python 爬蟲如何正確的使用cookie

    這篇文章主要介紹了python 爬蟲如何使用cookie,幫助大家繞過網(wǎng)站設置的登錄規(guī)則以及登錄時的驗證碼識別,完成自身的爬取需求,感興趣的朋友可以了解下
    2020-10-10
  • python框架django項目部署相關知識詳解

    python框架django項目部署相關知識詳解

    這篇文章主要介紹了python框架django項目部署相關知識詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11

最新評論