成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python多進(jìn)程知識點整理

本篇內(nèi)容介紹了“Python多進(jìn)程知識點整理”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)是一家專業(yè)提供眉山企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、網(wǎng)站建設(shè)、H5場景定制、小程序制作等業(yè)務(wù)。10年已為眉山眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。

1.Python 多進(jìn)程

類型CPU密集型操作IO密集型操作網(wǎng)絡(luò)請求密集型操作
線性操作94.9182499622.461999957.3296
多線程操作101.170000124.86050010.505333265
多進(jìn)程操作53.8899999912.784000040.504500032

通過上表我們可以看到:

多線程在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í)行

構(gòu)造方法描述
target執(zhí)行的方法
name進(jìn)程名
args執(zhí)行方法的參數(shù)
實例方法描述
is_alive()查看進(jìn)程是否正在運行
join()阻塞進(jìn)程
start()開始進(jìn)程
run()被start()調(diào)用
terminate()停止進(jìn)程
屬性描述
name進(jìn)程名字
pid進(jìn)程編號
daemon守護(hù)進(jìn)程

2.例子
2.1 使用多線程運行函數(shù)

import multiprocessing as mpdef count():for i in range(1000):
        print(i)#只有在本程序為主程序的時候運行接下來的代碼#每個python模塊(python文件,也就是此處的test.py和import_test.py)都包含內(nèi)置的#變量__name__,當(dāng)運行模塊被執(zhí)行的時候,__name__等于文件名(包含了后綴.py);如果#import到其他模塊中,則__name__等于模塊名稱(不包含后綴.py)。而“__main__”等于當(dāng)#前執(zhí)行文件的名稱(包含了后綴.py)。進(jìn)而當(dāng)模塊被直接執(zhí)行時,__name__ == 'main'結(jié)#果為真。if __name__ == "__main__":#注意這里的target調(diào)用的函數(shù)是函數(shù)名稱,不能帶();另外Process第一個字母大寫p1=mp.Process(target=count)
    p2=mp.Process(target=count)
    p1.start()
    p2.start()

在運行結(jié)果中我們可以看到這樣的片段:
152
953
153
154
155
156
157
954
158
955
159
956
160
說明在執(zhí)行第一個循環(huán)的進(jìn)程中,并發(fā)開始執(zhí)行了第二個進(jìn)程,兩個循環(huán)進(jìn)程是同時進(jìn)行的。

2.2 daemon

import multiprocessing as mpdef count1():for i in range(10):
        print(i)def count2():for i in range(10):
        print(i*10)if __name__ == "__main__":
    p1=mp.Process(target=count1)
    p2=mp.Process(target=count2)#進(jìn)程的屬性一定要在進(jìn)程開始前設(shè)置p1.daemon=Truep1.start()
    p2.start()
    print("Done")

輸出的結(jié)果為:
Done
0
10
20
30
40
50
60
70
80
90
我們可以看到主程序先運行結(jié)束,打印了“Done”,由于count1的進(jìn)程沒有設(shè)置保護(hù)進(jìn)程,所以主程序結(jié)束后,count1進(jìn)程也被終止了。但是,count2由于被設(shè)置了程度保護(hù),所以count2進(jìn)程并沒有隨著主程序的終止而終止。
2.3 lock
lock用來處理共享資源的訪問,避免訪問沖突
2.4 Semaphore
Semaphore限制訪問數(shù)量
2.5 Event
Event用來實現(xiàn)進(jìn)程間的同步通信
2.6 Queue
多進(jìn)程安全隊列,用于實現(xiàn)進(jìn)程間的數(shù)據(jù)傳遞。
2.7 Pipe
2.8 Pool

“Python多進(jìn)程知識點整理”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站題目:Python多進(jìn)程知識點整理
本文路徑:http://jinyejixie.com/article14/ggegge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、軟件開發(fā)、全網(wǎng)營銷推廣靜態(tài)網(wǎng)站、網(wǎng)站策劃網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
云梦县| 长岭县| 苍山县| 涞源县| 泗水县| 成都市| 海门市| 保定市| 东台市| 麻城市| 息烽县| 沾益县| 波密县| 梓潼县| 阆中市| 浮梁县| 孙吴县| 洛扎县| 招远市| 万全县| 奎屯市| 太仆寺旗| 洮南市| 临洮县| 武城县| 湾仔区| 南阳市| 阿勒泰市| 淮阳县| 深州市| 新蔡县| 改则县| 高清| 安国市| 梨树县| 玉林市| 嘉禾县| 南江县| 洞口县| 奉节县| 邵阳市|