国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Python多進程的理由

汽車玩家 ? 來源:編程派 ? 作者:饒木陽 ? 2020-04-04 16:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Python 是運行在解釋器中的語言,查找資料知道, python 中有一個全局鎖( GI),在使用多進程( Threa)的情況下,不能發揮多核的優勢。而使用多進程( Multiprocess),則可以發揮多核的優勢真正地提高效率。

對比實驗

資料顯示,如果多線程的進程是 CPU 密集型的,那多線程并不能有多少效率上的提升,相反還可能會因為線程的頻繁切換,導致效率下降,推薦使用多進程;如果是 IO 密集型,多線程進程可以利用 IO 阻塞等待時的空閑時間執行其他線程,提升效率。所以我們根據實驗對比不同場景的效率

使用Python多進程的理由

(1)引入所需要的模塊

使用Python多進程的理由

(2)定義 CPU 密集的計算函數

使用Python多進程的理由

(3)定義 IO 密集的文件讀寫函數

使用Python多進程的理由

(4) 定義網絡請求函數

使用Python多進程的理由

(5)測試線性執行 IO 密集操作、 CPU 密集操作所需時間、網絡請求密集型操作所需時間

使用Python多進程的理由

輸出

CPU 密集:95.6059999466、91.57099986076355 92.52800011634827、 99.96799993515015

IO 密集:24.25、21.76699995994568、21.769999980926514、22.060999870300293

網絡請求密集型:4.519999980926514、8.563999891281128、4.371000051498413、4.522000074386597、14.671000003814697

(6)測試多線程并發執行 CPU 密集操作所需時間

使用Python多進程的理由

(7)測試多線程并發執行 IO 密集操作所需時間

使用Python多進程的理由

(8)測試多線程并發執行網絡密集操作所需時間

使用Python多進程的理由

Output : 0.7419998645782471、0.3839998245239258、0.3900001049041748

(9)測試多進程并發執行 CPU 密集操作所需時間

使用Python多進程的理由

Output : 54.342000007629395、53.437999963760376

(10)測試多進程并發執行 IO 密集型操作

使用Python多進程的理由

Output : 12.509000062942505、13.059000015258789

(11)測試多進程并發執行 Http 請求密集型操作

使用Python多進程的理由

Output : 0.5329999923706055、0.4760000705718994

實驗結果

CPU 密集型操作 IO 密集型操作網絡請求密集型操作

使用Python多進程的理由

通過上面的結果,我們可以看到:

多線程在 IO 密集型的操作下似乎也沒有很大的優勢(也許 IO 操作的任務再繁重一些就能體現出優勢),在 CPU 密集型的操作下明顯地比單線程線性執行性能更差,但是對于網絡請求這種忙等阻塞線程的操作,多線程的優勢便非常顯著了

多進程無論是在 CPU 密集型還是 IO 密集型以及網絡請求密集型(經常發生線程阻塞的操作)中,都能體現出性能的優勢。不過在類似網絡請求密集型的操作上,與多線程相差無幾,但卻更占用 CPU 等資源,所以對于這種情況下,我們可以選擇多線程來執行。

使用Python多進程的理由

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11277

    瀏覽量

    224949
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90024
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    飛凌嵌入式ElfBoard-進程之什么是進程

    在Linux系統中,有些基本命令能夠查看到進程的信息。例如ps、top、pgrep、pstree等;這些命令為用戶提供了查看和管理Linux進程信息的多種功能。通過合理使用這些命令,用戶可以監控
    發表于 03-02 08:49

    飛凌嵌入式ElfBoard-進程之什么是進程

    進程是正在執行(已經開始執行但還沒終止的)的程序實例,執行程序時,內核會將程序載入虛擬內存,為程序變量分配空間,建立內核記賬(bookkeeping)數據結構,以記錄與進程有關的各種信息(比如,進程
    發表于 01-26 08:42

    進程概念和特征

    進程的概念   在多道程序環境下,允許多個程序并發執行,此時它們將失去封閉性,并具有間斷性及不可再現性的特征。為此引入了進程(Process)的概念,以便更好地描述和控制程序的并發執行,實現操作系統
    發表于 01-15 06:39

    進程通信

    進程通信是指進程之間的信息交換。PV操作是低級通信方式,髙級通信方式是指以較高的效率傳輸大量數據的通信方式。高級通信方法主要有以下三個類。   共享存儲   在通信的進程之間存在一塊可直接
    發表于 01-15 06:16

    進程的控制

    進程控制的主要功能是對系統中的所有進程實施有效的管理,它具有創建新進程、撤銷已有進程、實現進程狀態轉換等功能。在操作系統中,一般把
    發表于 01-15 06:05

    解析Linux的進程、線程和協程

    一、基礎概念 進程(Process) 進程是計算機中運行的程序的實例,它是操作系統中最基本的執行單元之一。每個進程都有自己的獨立內存空間、系統資源和代碼執行流。這意味著一個進程的崩
    發表于 12-22 11:00

    沒有專利的opencv-python 版本

    所有 官方發布的 opencv-python 核心版本(無 contrib 擴展)都無專利風險——專利問題僅存在于 opencv-contrib-python 擴展模塊中的少數算法(如早期 SIFT
    發表于 12-13 12:37

    termux如何搭建python游戲

    termux如何搭建python游戲 Termux搭建Python游戲開發環境的完整指南 一、Termux基礎環境準備 Termux是一款無需root即可在安卓設備上運行的Linux終端
    發表于 08-29 07:06

    python app不能運行怎么解決?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    發表于 08-06 06:27

    恒訊科技深度解析:阿帕奇服務器工作原理

    阿帕奇服務器(Apache HTTP Server)作為全球使用最廣泛的開源Web服務器軟件,其工作原理融合了多進程架構、模塊化設計與高效的請求處理流程。以下從核心機制、運行模式及優化策略三方面解析
    的頭像 發表于 05-22 09:37 ?1902次閱讀

    Linux進程狀態詳解

    進程狀態是task_struct內的一個整數;進行:進程在調度隊列中,進程的狀態都是running,阻塞:等待某種設備或者資源就緒。進程是一個隊列,設備也是一個隊列,當我們讀磁盤,讀網
    的頭像 發表于 04-01 09:46 ?1160次閱讀
    Linux<b class='flag-5'>進程</b>狀態詳解

    進程、線程、協程傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!

    各位程序員朋友(和假裝懂技術的同事):如果你在面試時被問到:\"請用奶茶店類比進程、線程和協程\",而你回答:\"進程是老板,線程是員工,協程是兼職...\"
    發表于 03-26 09:27

    ?如何在虛擬環境中使用 Python,提升你的開發體驗~

    RaspberryPiOS預裝了Python,你需要使用其虛擬環境來安裝包。今天出版的最新一期《TheMagPi》雜志刊登了我們文檔負責人NateContino撰寫的一篇實用教程,幫助你入門
    的頭像 發表于 03-25 09:34 ?811次閱讀
    ?如何在虛擬環境中使用 <b class='flag-5'>Python</b>,提升你的開發體驗~

    零基礎入門:如何在樹莓派上編寫和運行Python程序?

    在這篇文章中,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運行一個簡單的Python程序。什么是Python程序?
    的頭像 發表于 03-25 09:27 ?2026次閱讀
    零基礎入門:如何在樹莓派上編寫和運行<b class='flag-5'>Python</b>程序?

    請問如何在Python中實現多線程與多進程的協作?

    大家好!我最近在開發一個Python項目時,需要同時處理多個任務,且每個任務需要不同的計算資源。我想通過多線程和多進程的組合來實現并發,但遇到了一些問題。 具體來說,我有兩個任務,一個是I/O密集型
    發表于 03-11 06:57