日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

使用Python多進(jìn)程的理由

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

掃碼添加小助手

加入工程師交流群

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

對比實(shí)驗(yàn)

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

使用Python多進(jìn)程的理由

(1)引入所需要的模塊

使用Python多進(jìn)程的理由

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

使用Python多進(jìn)程的理由

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

使用Python多進(jìn)程的理由

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

使用Python多進(jìn)程的理由

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

使用Python多進(jìn)程的理由

輸出

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多進(jìn)程的理由

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

使用Python多進(jìn)程的理由

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

使用Python多進(jìn)程的理由

Output : 0.7419998645782471、0.3839998245239258、0.3900001049041748

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

使用Python多進(jìn)程的理由

Output : 54.342000007629395、53.437999963760376

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

使用Python多進(jìn)程的理由

Output : 12.509000062942505、13.059000015258789

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

使用Python多進(jìn)程的理由

Output : 0.5329999923706055、0.4760000705718994

實(shí)驗(yàn)結(jié)果

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

使用Python多進(jìn)程的理由

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

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

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

使用Python多進(jìn)程的理由

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

    關(guān)注

    68

    文章

    11332

    瀏覽量

    225982
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4889

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    使用PYTHON進(jìn)行的跨平臺仿真

    如何使用編程語言Python來調(diào)用和控制VirtualLab Fusion中的模擬。請查看下面鏈接的文檔,以找到關(guān)于如何設(shè)置和使用Python和VirtualLab Fusion之間的接口的詳細(xì)指南,以及一個
    發(fā)表于 04-02 08:21

    [VirtualLab] 使用Python運(yùn)行VirtualLab Fusion光學(xué)仿真

    摘要 VirtualLab Fusion允許Python外部訪問其建模技術(shù)、求解器和結(jié)果。這個用例介紹了一種使用路徑變量和Visual Studio代碼將Python連接到VirtualLab
    發(fā)表于 03-31 09:39

    如何在 VisionFive 上使用 Python 包?

    VisionFive Fedora 下的本地目錄,請?jiān)谠创a目錄下執(zhí)行以下命令: 提示:源代碼可從以下位置下載:愿景五.gpio. sudo yum install python
    發(fā)表于 03-30 08:28

    飛凌嵌入式ElfBoard-進(jìn)程進(jìn)程狀態(tài)

    運(yùn)行多個用戶的多個程序,就必然會產(chǎn)生多進(jìn)程,而每個進(jìn)程會有不同的狀態(tài)。Linux 的進(jìn)程通常有以下 6 種狀態(tài)。?R (Running/Ready):進(jìn)程處于運(yùn)行態(tài)或就緒狀態(tài),只有在該
    發(fā)表于 03-27 09:12

    飛凌嵌入式ElfBoard-進(jìn)程的相關(guān)信息之父進(jìn)程和子進(jìn)程

    進(jìn)程在創(chuàng)建時,創(chuàng)建進(jìn)程是新進(jìn)程的父進(jìn)程,新進(jìn)程是創(chuàng)建進(jìn)程的子
    發(fā)表于 03-12 17:12

    飛凌嵌入式ElfBoard-進(jìn)程之什么是進(jìn)程

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

    飛凌嵌入式ElfBoard-進(jìn)程之什么是進(jìn)程

    進(jìn)程是正在執(zhí)行(已經(jīng)開始執(zhí)行但還沒終止的)的程序?qū)嵗?,?zhí)行程序時,內(nèi)核會將程序載入虛擬內(nèi)存,為程序變量分配空間,建立內(nèi)核記賬(bookkeeping)數(shù)據(jù)結(jié)構(gòu),以記錄與進(jìn)程有關(guān)的各種信息(比如,進(jìn)程
    發(fā)表于 01-26 08:42

    進(jìn)程概念和特征

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

    進(jìn)程通信

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

    進(jìn)程的控制

    進(jìn)程控制的主要功能是對系統(tǒng)中的所有進(jìn)程實(shí)施有效的管理,它具有創(chuàng)建新進(jìn)程、撤銷已有進(jìn)程、實(shí)現(xiàn)進(jìn)程狀態(tài)轉(zhuǎn)換等功能。在操作系統(tǒng)中,一般把
    發(fā)表于 01-15 06:05

    解析Linux的進(jìn)程、線程和協(xié)程

    一、基礎(chǔ)概念 進(jìn)程(Process) 進(jìn)程是計算機(jī)中運(yùn)行的程序的實(shí)例,它是操作系統(tǒng)中最基本的執(zhí)行單元之一。每個進(jìn)程都有自己的獨(dú)立內(nèi)存空間、系統(tǒng)資源和代碼執(zhí)行流。這意味著一個進(jìn)程的崩
    發(fā)表于 12-22 11:00

    沒有專利的opencv-python 版本

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

    termux如何搭建python游戲

    termux如何搭建python游戲 Termux搭建Python游戲開發(fā)環(huán)境的完整指南 一、Termux基礎(chǔ)環(huán)境準(zhǔn)備 Termux是一款無需root即可在安卓設(shè)備上運(yùn)行的Linux終端
    發(fā)表于 08-29 07:06

    python app不能運(yùn)行怎么解決?

    ;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ù)器軟件,其工作原理融合了多進(jìn)程架構(gòu)、模塊化設(shè)計與高效的請求處理流程。以下從核心機(jī)制、運(yùn)行模式及優(yōu)化策略三方面解析
    的頭像 發(fā)表于 05-22 09:37 ?2131次閱讀
    台湾省| 芜湖市| 扶绥县| 龙州县| 成安县| 招远市| 射阳县| 武宣县| 盈江县| 饶河县| 扶沟县| 洪雅县| 灌云县| 高安市| 华蓥市| 台湾省| 长顺县| 四会市| 綦江县| 龙海市| 新乐市| 明光市| 红河县| 保康县| 平阳县| 涡阳县| 中超| 兰考县| 兰西县| 周至县| 义乌市| 休宁县| 城固县| 哈密市| 金寨县| 沂水县| 大同县| 永春县| 赤峰市| 绩溪县| 彭阳县|