chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

使用Python多進程的理由

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

掃碼添加小助手

加入工程師交流群

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

對比實驗

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

使用Python多進程的理由

(1)引入所需要的模塊

使用Python多進程的理由

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

使用Python多進程的理由

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

使用Python多進程的理由

(4) 定義網(wǎng)絡(luò)請求函數(shù)

使用Python多進程的理由

(5)測試線性執(zhí)行 IO 密集操作、 CPU 密集操作所需時間、網(wǎng)絡(luò)請求密集型操作所需時間

使用Python多進程的理由

輸出

CPU 密集:95.6059999466、91.57099986076355 92.52800011634827、 99.96799993515015

IO 密集:24.25、21.76699995994568、21.769999980926514、22.060999870300293

網(wǎng)絡(luò)請求密集型:4.519999980926514、8.563999891281128、4.371000051498413、4.522000074386597、14.671000003814697

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

使用Python多進程的理由

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

使用Python多進程的理由

(8)測試多線程并發(fā)執(zhí)行網(wǎng)絡(luò)密集操作所需時間

使用Python多進程的理由

Output : 0.7419998645782471、0.3839998245239258、0.3900001049041748

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

使用Python多進程的理由

Output : 54.342000007629395、53.437999963760376

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

使用Python多進程的理由

Output : 12.509000062942505、13.059000015258789

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

使用Python多進程的理由

Output : 0.5329999923706055、0.4760000705718994

實驗結(jié)果

CPU 密集型操作 IO 密集型操作網(wǎng)絡(luò)請求密集型操作

使用Python多進程的理由

通過上面的結(jié)果,我們可以看到:

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

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

使用Python多進程的理由

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11187

    瀏覽量

    221282
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4848

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    python app不能運行怎么解決?

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

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

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

    Linux進程狀態(tài)詳解

    進程狀態(tài)是task_struct內(nèi)的一個整數(shù);進行:進程在調(diào)度隊列中,進程的狀態(tài)都是running,阻塞:等待某種設(shè)備或者資源就緒。進程是一個隊列,設(shè)備也是一個隊列,當(dāng)我們讀磁盤,讀網(wǎng)
    的頭像 發(fā)表于 04-01 09:46 ?710次閱讀
    Linux<b class='flag-5'>進程</b>狀態(tài)詳解

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

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

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

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

    請問如何在Python中實現(xiàn)多線程與多進程的協(xié)作?

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

    Python繪圖Matplotlib快速參考手冊

    ?PYTHON
    發(fā)表于 02-07 14:04 ?0次下載

    使用Python實現(xiàn)xgboost教程

    使用Python實現(xiàn)XGBoost模型通常涉及以下幾個步驟:數(shù)據(jù)準備、模型訓(xùn)練、模型評估和模型預(yù)測。以下是一個詳細的教程,指導(dǎo)你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發(fā)表于 01-19 11:21 ?1971次閱讀

    做的是LED多進制幅移鍵控通信,怎么解調(diào)信號?

    我做的是LED多進制幅移鍵控通信(MASK),LED驅(qū)動電路驅(qū)動LED發(fā)出8種亮度光強,每種光強表示3位二進制數(shù)。PIN接收光強,跨阻運放放大濾波,然后解調(diào)。請問各位專家,該怎么解調(diào)信號? 謝謝! 注:黃線是LED兩端電壓,藍線是PIN輸出信號。
    發(fā)表于 12-26 06:19

    深入解析Linux程序與進程

    什么是程序 一組計算機能識別和執(zhí)行的指令,用于指導(dǎo)計算機執(zhí)行特定任務(wù)或解決特定問題。程序通常由代碼、數(shù)據(jù)和資源文件組成,涉及語法、算法和數(shù)據(jù)結(jié)構(gòu)。為二進制文件 什么是進程 是一個具有獨立功能的程序
    的頭像 發(fā)表于 12-18 11:01 ?728次閱讀
    深入解析Linux程序與<b class='flag-5'>進程</b>

    程序和進程的區(qū)別

    比如: 開發(fā)寫的代碼我們稱為程序,那么將開發(fā)的代碼運行起來。我們稱為進程。
    的頭像 發(fā)表于 11-25 16:03 ?1611次閱讀
    程序和<b class='flag-5'>進程</b>的區(qū)別

    手寫圖像模板匹配算法在OpenCV中的實現(xiàn)

    OpenCV中的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一個主要的原因是查找最大閾值,只能匹配一個,自己比對閾值,又導(dǎo)致無法正確設(shè)定閾值范圍,所以問題很多。于是我重新寫了純Python版本的NCC圖像模板匹配的代碼實現(xiàn)了一個Python版本的,簡單易用,支持
    的頭像 發(fā)表于 11-11 10:12 ?978次閱讀
    手寫圖像模板匹配算法在OpenCV中的實現(xiàn)

    使用Python進行圖像處理

    下面是一個關(guān)于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發(fā)表于 11-07 10:14 ?767次閱讀
    使用<b class='flag-5'>Python</b>進行圖像處理

    一文搞懂Linux進程的睡眠和喚醒

    一、常見的進程狀態(tài)與理解 在操作系統(tǒng)內(nèi)部,有專門用來管理進程的結(jié)構(gòu)體,叫做struct task_struct,也稱作進程控制塊(PCB),主要包含描述進程的相關(guān)信息,如
    發(fā)表于 11-04 15:15

    Python中多線程和多進程的區(qū)別

    Python作為一種高級編程語言,提供了多種并發(fā)編程的方式,其中多線程與多進程是最常見的兩種方式之一。在本文中,我們將探討Python中多線程與多進程的概念、區(qū)別以及如何使用線程池與
    的頭像 發(fā)表于 10-23 11:48 ?1227次閱讀
    <b class='flag-5'>Python</b>中多線程和<b class='flag-5'>多進程</b>的區(qū)別