乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      你真的了解Python嗎?什么場景使用多線程,什么場景使用多進(jìn)程?

       網(wǎng)摘文苑 2022-05-24 發(fā)布于新疆

      引言

      涉及并發(fā)的場景,大家想到使用多線程或多進(jìn)程解決并發(fā)問題;

      一般情況下,解決多并發(fā)場景問題,多數(shù)語言采用多線程編程模式(線程是輕量級的進(jìn)程,共用一份進(jìn)程空間)。

      也同樣適用于Python多并發(fā)處理嗎?

      答:不是的,針對并發(fā)處理,Python多線程和多進(jìn)程是有很大差異的!

      Python多線程和多進(jìn)程差異

      Python多線程不能使用CPU多核資源,即同一時刻,只有一個線程使用CPU資源,所以使用Python多線程不能算是并發(fā)。

      如果想要充分利用CPU多核資源,做到多并發(fā),這就需要Python多進(jìn)程的了!

      也就是說:只有Python多進(jìn)程才能利用CPU多核資源,做到真正的多并發(fā)!

      Python多線程和多進(jìn)程應(yīng)用場景

      既然Python多線程不能并發(fā),那存在還有什么意義呢?

      其實Python多線程和多進(jìn)程有自己的應(yīng)用場景:

      • Python多線程適用于I/O密集型場景,如解決網(wǎng)絡(luò)IO、磁盤IO阻塞問題,例如文件讀寫、網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)龋?/li>
      • 而Python多進(jìn)程更適用于計算密集型場景,多并發(fā),大量計算任務(wù)等。

      注意:Python多線程和多進(jìn)程在平時開發(fā)過程中,需要注意使用,如果使用Python多線程方式處理計算密集型任務(wù),它比實際單進(jìn)程處理性能還要慢!所以要注意,看場景類型。

      再談Python多線程,全局解釋器鎖(GIL)

      為什么Python多線程不能使用CPU多核資源?

      為什么Python多線程在同一時刻,只有一個線程使用CPU資源?

      正是因為Python有一個全局解釋器鎖(GIL,全稱Global Interpreter Lock),它使得Python多線程無法使用CPU多核資源,保證同一時刻只有一個線程在使用CPU資源;當(dāng)出現(xiàn)IO阻塞時,解鎖,釋放CPU資源,其他線程才能申請到鎖,使用CPU資源。

      Python并發(fā)編程

      Python多進(jìn)程編程使用的模塊庫:multiprocessing模塊,是Python內(nèi)置的多進(jìn)程處理庫,使用與線程庫threading.Thread類似。

      Python多線程編程使用的模塊庫

      • thread模塊 Python內(nèi)置,比較底層,不推薦使用
      • threading模塊 Python內(nèi)置
      • multiprocessing.dummy模塊 Python內(nèi)置

      補充:

      multiprocessing模塊 和 multiprocessing.dummy模塊

      兩者的區(qū)別在于:前者是多進(jìn)程,后者是多線程;但是他們編程接口完全一致;

      所以很方便的將代碼在多線程和多進(jìn)程進(jìn)行切換!

      由于篇幅有限,暫不介紹編程模塊具體使用,以后會開專題補上!

      之前整理的Python多線程和多進(jìn)程思維導(dǎo)圖供大家參考:

      • Python多進(jìn)程編程
      文章圖片1
      • Python多線程編程
      文章圖片2

      最后

      接下來會有更加精彩的內(nèi)容,不想錯過的話,可以關(guān)注我,第一時間獲取更新!

      最后,投幣收藏轉(zhuǎn)發(fā)來一波,我們下期不見不散~

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多