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

Python基礎(chǔ)之如何使用multiprocessing模塊

 更新時間:2021年06月06日 11:19:12   作者:松鼠愛吃餅干  
今天帶大家學(xué)習(xí)python多進(jìn)程的相關(guān)知識,文中對multiprocessing模塊的使用作了非常詳細(xì)的介紹,需要的朋友可以參考下

一、multiprocessing模塊

multiprocessing包是Python中的多進(jìn)程管理包。與threading.Thread類似,它可以使用multiprocessing.Proces 對象來創(chuàng)建一個進(jìn)程。

該進(jìn)程可以運行在Python程序內(nèi)部編寫的函數(shù)。該Process對象與Thread對象的用法相同,也start(),run()的方法。

此外multiprocessing包中也有Lock/Event/Semaphore/Condition類(這些對象可以像多線程那樣,通過參數(shù)傳遞給各個進(jìn)程),用以同步進(jìn)程,其用法與threading包中的同名類一致。

所以,multiprocessing的很大一部份與threading使用同一套API,只不過換到了多進(jìn)程的情境。接下來我們通過一個案例學(xué)習(xí):

import time
import multiprocessing
 
def download () :
    print("開始下載文件...")
    time.sleep(1)
    print("完成下載文件...")
 
def upload() :
    print("開始上傳文件...")
    time.sleep(1)
    print("完成上傳文件...")
 
#download()
# upload()
#多進(jìn)程與多線程的使用方式是差不多的
download_process = multiprocessing.Process(target=download)
upload_process = multiprocessing. Process(target=upload)
if _name_ == '_main_':
    #多進(jìn)程必須要在 if _name_ == "_main_”里面
    download_process.start()
    upload_process.start ()
    #默認(rèn)情況下,主進(jìn)程代碼運行完畢之后會等待子進(jìn)程結(jié)束
    print('--主進(jìn)程運行完了---')

上述代碼是一個非常簡單的程序,一旦運行這個程序,按照代碼的執(zhí)行順序,download 函數(shù)執(zhí)行完畢后才能執(zhí)行upload 函數(shù)﹒如果可以讓download和upload同時運行,顯然執(zhí)行這個程序的效率會大大提升。

要點:

  • 進(jìn)程(Process)是資源分配的最小單位
  • 多進(jìn)程是Python程序中實現(xiàn)多任務(wù)的一種方式,使用多進(jìn)程可以大大提高程序的執(zhí)行效率

二、進(jìn)程的創(chuàng)建

  • 導(dǎo)入進(jìn)程包

import multiprocessing

  • 通過進(jìn)程類創(chuàng)建進(jìn)程對象

進(jìn)程對象= multiprocessing.Process()

  • 啟動進(jìn)程執(zhí)行任務(wù)

進(jìn)程對象.start()

通過進(jìn)程類創(chuàng)建進(jìn)程對象

進(jìn)程對象=multiprocessing.Process(target=任務(wù)名)

三、進(jìn)程的參數(shù)傳遞

帶有參數(shù)的任務(wù)

進(jìn)程執(zhí)行帶有參數(shù)的任務(wù)傳參有兩種方式:

  • 元組方式傳參∶元組方式傳參一定要和參數(shù)的順序保持一致。
  • 字典方式傳參:字典方式傳參字典中的key一定要和參數(shù)名保持一致。

到此這篇關(guān)于Python基礎(chǔ)之如何使用multiprocessing模塊的文章就介紹到這了,更多相關(guān)multiprocessing模塊的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文帶你了解Spring的Bean初始化過程和生命周期

    一文帶你了解Spring的Bean初始化過程和生命周期

    Spring的核心功能有三點IOC、DI、AOP,IOC則是基礎(chǔ),也是Spring功能的最核心的點之一。今天一起來總結(jié)下Spring中Bean是怎么被創(chuàng)建出來的
    2023-03-03
  • SpringBoot下載文件遇到文件損壞等問題解決方案

    SpringBoot下載文件遇到文件損壞等問題解決方案

    調(diào)用接口下載spring?boot工程的resources目錄下的excel模板文件,非常常見的一個文件下載功能,但是卻容易遇到很多坑,下面總結(jié)記錄下
    2023-10-10
  • Java實現(xiàn)微信支付的項目實踐

    Java實現(xiàn)微信支付的項目實踐

    最近的一個項目中涉及到了支付業(yè)務(wù),其中用到了微信支付和支付寶支付,本文就來介紹一下Java實現(xiàn)微信支付的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Java如何判斷一個空對象的常見方法

    Java如何判斷一個空對象的常見方法

    在Java中判斷對象是否為空是一項重要的編程技巧,可以有效防止空指針異常的發(fā)生,下面這篇文章主要給大家介紹了關(guān)于利用Java如何判斷一個空對象的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Mybatis錯誤引起的程序啟動卡死問題及解決

    Mybatis錯誤引起的程序啟動卡死問題及解決

    這篇文章主要介紹了Mybatis錯誤引起的程序啟動卡死問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • SpringBoot學(xué)習(xí)之基于注解的緩存

    SpringBoot學(xué)習(xí)之基于注解的緩存

    spring boot對緩存支持非常靈活,我們可以使用默認(rèn)的EhCache,也可以整合第三方的框架,只需配置即可,下面這篇文章主要給大家介紹了關(guān)于SpringBoot學(xué)習(xí)之基于注解緩存的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 出現(xiàn)log.info報紅的解決方案

    出現(xiàn)log.info報紅的解決方案

    這篇文章主要介紹了出現(xiàn)log.info報紅的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Springboot項目javax.validation使用方法詳解

    Springboot項目javax.validation使用方法詳解

    這篇文章主要介紹了Springboot項目javax.validation使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Mybatis結(jié)果生成鍵值對的實例代碼

    Mybatis結(jié)果生成鍵值對的實例代碼

    這篇文章主要介紹了Mybatis結(jié)果生成鍵值對的實例代碼,以及MyBatis返回Map鍵值對數(shù)據(jù)的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的的朋友參考下
    2017-02-02
  • 帶你走進(jìn)Maven的大門-最全Maven配置及集成idea工具總結(jié)

    帶你走進(jìn)Maven的大門-最全Maven配置及集成idea工具總結(jié)

    Maven項目對象模型(POM),是一個項目管理工具可以通過一小段描述信息來管理項目的構(gòu)建,報告和文檔的軟件.那我們想要在IDEA中使用Maven得進(jìn)行一些配置,接下來我們具體看一下是如何配置使用的,需要的朋友可以參考下
    2021-06-06

最新評論