Python 進(jìn)程 Process 與線程 threading 區(qū)別 - Python零基礎(chǔ)入門教程

目錄

一.Python 線程 threading 創(chuàng)建

對于 Python 線程相關(guān)的函數(shù)本文不再做詳細(xì)講解肾砂,如果想學(xué)習(xí)線程 threading 內(nèi)容請參考:Python 線程創(chuàng)建和參數(shù)傳遞

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿說編程
@Blog(個(gè)人博客地址): www.codersrc.com
@File:Python  進(jìn)程 Process 與線程 threading 區(qū)別.py
@Time:2021/05/07 08:00
@Motto:不積跬步無以至千里芒澜,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累淮阐!

"""

import threading


def study_info(*args,**kwargs):
    print(args,kwargs)

def main():

    # 信息列表
    list_info = [{"name":"python 基礎(chǔ)","progress":"10%"},
                 {"name": "python 面向?qū)ο?, "progress": "20%"},
                 {"name": "python 爬蟲", "progress": "30%"},
                 {"name": "python pyqt5", "progress": "40%"},
                 {"name": "python 數(shù)據(jù)結(jié)構(gòu)", "progress": "50%"},]

    # 創(chuàng)建線程
    for i in range(5):
        p = threading.Thread(target=study_info,args=(i,),kwargs=list_info[i])
        # 啟動(dòng)線程
        p.start()


if __name__ == "__main__":
    main()

'''
輸出結(jié)果:

(0,) {'name': 'python 基礎(chǔ)', 'progress': '10%'}
(1,) {'name': 'python 面向?qū)ο?, 'progress': '20%'}
(2,) {'name': 'python 爬蟲', 'progress': '30%'}
(3,) {'name': 'python pyqt5', 'progress': '40%'}
(4,) {'name': 'python 數(shù)據(jù)結(jié)構(gòu)', 'progress': '50%'}
'''

二.Python 進(jìn)程 Process 創(chuàng)建

對于 Python 進(jìn)程相關(guān)的函數(shù)本文不再做詳細(xì)講解蔓腐,如果想學(xué)習(xí)進(jìn)程 Process 內(nèi)容請參考:Python 進(jìn)程 Process

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿說編程
@Blog(個(gè)人博客地址): www.codersrc.com
@File:Python  進(jìn)程 Process 與線程 threading 區(qū)別.py
@Time:2021/05/07 08:00
@Motto:不積跬步無以至千里矩乐,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累回论!

"""

from multiprocessing import Process


def study_info(*args,**kwargs):
    print(args,kwargs)

def main():

    # 信息列表
    list_info = [{"name":"python 基礎(chǔ)","progress":"10%"},
                 {"name": "python 面向?qū)ο?, "progress": "20%"},
                 {"name": "python 爬蟲", "progress": "30%"},
                 {"name": "python pyqt5", "progress": "40%"},
                 {"name": "python 數(shù)據(jù)結(jié)構(gòu)", "progress": "50%"},]

    # 創(chuàng)建進(jìn)程
    for i in range(5):
        p = Process(target=study_info,args=(i,),kwargs=list_info[i])
        # 啟動(dòng)進(jìn)程
        p.start()

if __name__ == "__main__":
    main()

'''
輸出結(jié)果:

(0,) {'name': 'python 基礎(chǔ)', 'progress': '10%'}
(1,) {'name': 'python 面向?qū)ο?, 'progress': '20%'}
(2,) {'name': 'python 爬蟲', 'progress': '30%'}
(3,) {'name': 'python pyqt5', 'progress': '40%'}
(4,) {'name': 'python 數(shù)據(jù)結(jié)構(gòu)', 'progress': '50%'}
'''

三.Python 進(jìn)程 Process 和線程 threading 區(qū)別

Python 進(jìn)程 Process 和線程 threading 區(qū)別

1.一個(gè)線程只能屬于一個(gè)進(jìn)程散罕,而一個(gè)進(jìn)程可以有多個(gè)線程,但至少有一個(gè)線程(線程是計(jì)算機(jī)的最小單位)傀蓉;

2.資源分配給進(jìn)程欧漱,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源,進(jìn)程與進(jìn)程之間資源相互獨(dú)立葬燎,互不影響(類似深拷貝);

3.多進(jìn)程模式最大的優(yōu)點(diǎn)就是穩(wěn)定性高误甚,因?yàn)橐粋€(gè)子進(jìn)程崩潰了,不會影響主進(jìn)程和其他子進(jìn)程谱净,多進(jìn)程模式的缺點(diǎn)是在 Windows 下創(chuàng)建進(jìn)程開銷巨大靶草。另外,操作系統(tǒng)能同時(shí)運(yùn)行的進(jìn)程數(shù)也是有限的岳遥,在內(nèi)存和 CPU 的限制下,如果有幾千個(gè)進(jìn)程同時(shí)運(yùn)行裕寨,操作系統(tǒng)連調(diào)度都會成問題(進(jìn)程的創(chuàng)建比線程的創(chuàng)建更加占用計(jì)算機(jī)資源)浩蓉;

4.多線程模式致命的缺點(diǎn)就是任何一個(gè)線程掛掉都可能直接造成整個(gè)進(jìn)程崩潰,因?yàn)樗芯€程共享進(jìn)程的內(nèi)存宾袜;

**5.由于 GIL 鎖的緣故捻艳,Python 中線程實(shí)際上是并發(fā)運(yùn)行(即便有多個(gè) CPU** **,線程會在其中一個(gè) CPU** **來回切換庆猫,只占用一個(gè) CPU** **資源)认轨,而進(jìn)程才是真正的并行(同時(shí)執(zhí)行多個(gè)任務(wù),占用多個(gè) CPU** 資源)月培,下面關(guān)于并行和并發(fā)做一個(gè)簡單的了解嘁字;

四.Python 進(jìn)程 Process 并行

并行是指兩個(gè)或者多個(gè)事件在同一時(shí)刻發(fā)生,Python 中的進(jìn)程屬于并行杉畜,能充分利用計(jì)算機(jī)資源纪蜒,效率最高,**同時(shí)執(zhí)行多個(gè)任務(wù)此叠,占用多個(gè) CPU** **資源纯续;**

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-BMVew0rZ-1624930849839)(https://www.codersrc.com/wp-content/uploads/2021/05/c4ca4238a0b9238-1.png “Python 進(jìn)程 Process 與線程 threading 區(qū)別-猿說編程”)]

五.Python 線程 threading 并發(fā)

并發(fā)是指兩個(gè)或多個(gè)事件在同一時(shí)間間隔發(fā)生,Python 中的線程屬于并發(fā)不管計(jì)算機(jī)有多少個(gè) CPU 猬错,不管你開了多少個(gè)線程窗看,同一時(shí)間多個(gè)任務(wù)會在其中一個(gè) CPU 來回切換,只占用一個(gè) CPU 倦炒,效率并不高级解;

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-zu34UfQa-1624930849841)(https://www.codersrc.com/wp-content/uploads/2021/05/c81e728d9d4c2f6-2.png “Python 進(jìn)程 Process 與線程 threading 區(qū)別-猿說編程”)]

關(guān)于并行和并發(fā)我們留到后面 GIL 鎖在詳細(xì)講解;

六.猜你喜歡

  1. Python 條件推導(dǎo)式
  2. Python 列表推導(dǎo)式
  3. Python 字典推導(dǎo)式
  4. Python 函數(shù)聲明和調(diào)用
  5. Python 不定長參數(shù) *argc/**kargcs
  6. Python 匿名函數(shù) lambda
  7. Python return 邏輯判斷表達(dá)式
  8. Python 字符串/列表/元組/字典之間的相互轉(zhuǎn)換
  9. Python 局部變量和全局變量
  10. Python type 函數(shù)和 isinstance 函數(shù)區(qū)別
  11. Python is 和 == 區(qū)別
  12. Python 可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型
  13. Python 淺拷貝和深拷貝
  14. Python 文件讀寫操作
  15. Python 異常處理
  16. Python 模塊 import
  17. Python __name__ == ‘__main__’詳細(xì)解釋
  18. Python 線程創(chuàng)建和傳參
  19. Python 線程互斥鎖 Lock
  20. Python 線程時(shí)間 Event
  21. Python 線程條件變量 Condition
  22. Python 線程定時(shí)器 Timer
  23. Python 線程信號量 Semaphore
  24. Python 線程障礙對象 Barrier
  25. Python 線程隊(duì)列 Queue – FIFO
  26. Python 線程隊(duì)列 LifoQueue – LIFO
  27. Python 線程優(yōu)先隊(duì)列 PriorityQueue
  28. Python 線程池 ThreadPoolExecutor(一)
  29. Python 線程池 ThreadPoolExecutor(二)
  30. Python 進(jìn)程 Process 模塊
  31. Python 進(jìn)程 Process 與線程 threading 區(qū)別
  32. Python 進(jìn)程間通信 Queue / Pipe

未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? Python 進(jìn)程 Process 與線程 threading 區(qū)別

本文由博客 - 猿說編程 猿說編程 發(fā)布华匾!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末长酗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子智玻,更是在濱河造成了極大的恐慌遂唧,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吊奢,死亡現(xiàn)場離奇詭異盖彭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)页滚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門召边,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人裹驰,你說我怎么就攤上這事隧熙。” “怎么了幻林?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵贞盯,是天一觀的道長。 經(jīng)常有香客問我沪饺,道長躏敢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任整葡,我火速辦了婚禮件余,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘遭居。我一直安慰自己啼器,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布俱萍。 她就那樣靜靜地躺著镀首,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鼠次。 梳的紋絲不亂的頭發(fā)上更哄,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天芋齿,我揣著相機(jī)與錄音,去河邊找鬼成翩。 笑死觅捆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的麻敌。 我是一名探鬼主播栅炒,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼术羔!你這毒婦竟也來了赢赊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤级历,失蹤者是張志新(化名)和其女友劉穎释移,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寥殖,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玩讳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嚼贡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熏纯。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粤策,靈堂內(nèi)的尸體忽然破棺而出樟澜,到底是詐尸還是另有隱情,我是刑警寧澤叮盘,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布秩贰,位于F島的核電站,受9級特大地震影響熊户,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吭服,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一嚷堡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧艇棕,春花似錦蝌戒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至打瘪,卻和暖如春友鼻,著一層夾襖步出監(jiān)牢的瞬間傻昙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工彩扔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留妆档,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓虫碉,卻偏偏與公主長得像贾惦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子敦捧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容