在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    11015

    瀏覽量

    215405
  • python
    +關注

    關注

    56

    文章

    4822

    瀏覽量

    85943
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Linux進程狀態詳解

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

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

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

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

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

    使用Python實現xgboost教程

    使用Python實現XGBoost模型通常涉及以下幾個步驟:數據準備、模型訓練、模型評估和模型預測。以下是一個詳細的教程,指導你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發表于 01-19 11:21 ?1003次閱讀

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

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

    深入解析Linux程序與進程

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

    手寫圖像模板匹配算法在OpenCV中的實現

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

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

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

    Python中多線程和多進程的區別

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

    pytorch和python的關系是什么

    在當今的人工智能領域,Python已經成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區支持,使其成為了數據科學、機器學習和深度學習等領域的首選語言。而在深度學習領域
    的頭像 發表于 08-01 15:27 ?2979次閱讀

    Python建模算法與應用

    Python作為一種功能強大、免費、開源且面向對象的編程語言,在科學計算、數學建模、數據分析等領域展現出了卓越的性能。其簡潔的語法、對動態輸入的支持以及解釋性語言的本質,使得Python在多個平臺
    的頭像 發表于 07-24 10:41 ?1004次閱讀

    Python在AI中的應用實例

    Python在人工智能(AI)領域的應用極為廣泛且深入,從基礎的數據處理、模型訓練到高級的應用部署,Python都扮演著至關重要的角色。以下將詳細探討Python在AI中的幾個關鍵應用實例,包括機器學習、深度學習、自然語言處理、
    的頭像 發表于 07-19 17:16 ?2192次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發表于 07-16 10:38 ?1821次閱讀

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?1234次閱讀

    鴻蒙開發:【進程模型】

    應用中(同一Bundle名稱)的所有UIAbility、ServiceExtensionAbility和DataShareExtensionAbility均是運行在同一個獨立進程(主進程)中,如下圖中綠色部分的“Main Process”。
    的頭像 發表于 06-13 09:53 ?458次閱讀
    鴻蒙開發:【<b class='flag-5'>進程</b>模型】
    主站蜘蛛池模板: 一级特黄aa大片免费 | 四虎国产永久免费久久 | 日本中文在线三级在线播放 | 欧美日韩色图 | 在线视频精品视频 | 欧美成人猛男性色生活 | 欧美一区二区三区在线 | 日本三级特黄 | 色播图片| 五月天婷婷亚洲 | 大伊人网 | 色老头久久网 | 全午夜免费一级毛片 | 一级aaaaaa片毛片在线播放 | 亚洲成人99| www.色视频| 69女poren60| 色综合狠狠 | 涩涩高清无乱码在线观看 | 国产三级精品三级 | 男人不识本站 | 免费在线视频观看 | 91大神精品长腿在线观看网站 | 国产在线美女 | 伊人网网站 | 高清毛片aaaaaaaaa片 | 五月综合色啪 | 日本一区二区三区不卡在线视频 | 在线五月婷婷 | 九九精品免费观看在线 | 欧美社区 | 国产精品美女一区二区三区 | 性做久久久久久 | www.狠狠操.com | 日韩特级| 特黄日韩免费一区二区三区 | 深夜桃色影院 | 亚洲成在人线久久综合 | 中国日韩欧美中文日韩欧美色 | 黄色视屏日本 | 免费啪视频观在线视频在线 |