最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

區(qū)分python中的進(jìn)程與線程

 更新時(shí)間:2020年08月13日 08:35:03   作者:叫我龍總  
這篇文章主要介紹了區(qū)分python中的進(jìn)程與線程,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下

今天整理的文章是給大家梳理Python的進(jìn)程與線程的區(qū)別,沒(méi)什么代碼,希望大家能清楚知道他們的區(qū)別,什么情況用線程,什么情況用進(jìn)程做到心中有數(shù),希望大家能熟練掌握.

進(jìn)程的基本概念

概念

進(jìn)程就是一個(gè)程序在一個(gè)數(shù)據(jù)集上的一次動(dòng)態(tài)執(zhí)行過(guò)程。進(jìn)程一般由程序、數(shù)據(jù)集、進(jìn)程控制塊三部分組成。我們編寫的程序用來(lái)描述進(jìn)程要完成哪些功能以及如何完成;數(shù)據(jù)集則是程序在執(zhí)行過(guò)程中所需要使用的資源;進(jìn)程控制塊用來(lái)記錄進(jìn)程的外部特征,描述進(jìn)程的執(zhí)行變化過(guò)程,系統(tǒng)可以利用它來(lái)控制和管理進(jìn)程,它是系統(tǒng)感知進(jìn)程存在的唯一標(biāo)志。

線程的基本概念

概念

線程是進(jìn)程中執(zhí)行運(yùn)算的最小單位,是進(jìn)程中的一個(gè)實(shí)體,是被系統(tǒng)獨(dú)立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,但它可與同屬一個(gè)進(jìn)程的其它線程共享進(jìn)程所擁有的全部資源。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行。

好處

  • 易于調(diào)度。
  • 提高并發(fā)性,通過(guò)線程可方便有效地實(shí)現(xiàn)并發(fā)性。進(jìn)程可創(chuàng)建多個(gè)線程來(lái)執(zhí)行同一程序的不同部分。
  • 開銷少,創(chuàng)建線程比創(chuàng)建進(jìn)程要快,所需開銷很少

進(jìn)程的基本狀態(tài)及狀態(tài)之間的關(guān)系

狀態(tài):運(yùn)行、阻塞、掛起阻塞、就緒、掛起就緒

狀態(tài)之間的轉(zhuǎn)換:

  1. 準(zhǔn)備就緒的進(jìn)程,被CPU調(diào)度執(zhí)行,變成運(yùn)行態(tài);
  2. 運(yùn)行中的進(jìn)程,進(jìn)行I/O請(qǐng)求或者不能得到所請(qǐng)求的資源,變成阻塞態(tài);
  3. 運(yùn)行中的進(jìn)程,進(jìn)程執(zhí)行完畢(或時(shí)間片已到),變成就緒態(tài);
  4. 將阻塞態(tài)的進(jìn)程掛起,變成掛起阻塞態(tài),當(dāng)導(dǎo)致進(jìn)程阻塞的I/O操作在用戶重啟進(jìn)程前完成(稱之為喚醒),掛起阻塞態(tài)變成掛起就緒態(tài),當(dāng)用戶在I/O操作結(jié)束之前重啟進(jìn)程,掛起阻塞態(tài)變成阻塞態(tài);
  5. 將就緒(或運(yùn)行)中的進(jìn)程掛起,變成掛起就緒態(tài),當(dāng)該進(jìn)程恢復(fù)之后,掛起就緒態(tài)變成就緒態(tài);

進(jìn)程和線程的關(guān)系:

  • 一個(gè)線程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線程,但至少有一個(gè)線程。
  • 資源分配給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。
  • 處理機(jī)分給線程,即真正在處理機(jī)上運(yùn)行的是線程
  • 線程在執(zhí)行過(guò)程中,需要協(xié)作同步。不同進(jìn)程的線程間要利用消息通信的辦法實(shí)現(xiàn)同步。線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體.

進(jìn)程與線程的區(qū)別:

  • 運(yùn)行方式不同

進(jìn)程不能單獨(dú)執(zhí)行,它只是資源的集合。
進(jìn)程要操作CPU,必須要先創(chuàng)建一個(gè)線程。
所有在同一個(gè)進(jìn)程里的線程,是同享同一塊進(jìn)程所占的內(nèi)存空間。

  • 關(guān)系

進(jìn)程中第一個(gè)線程是主線程,主線程可以創(chuàng)建其他線程;其他線程也可以創(chuàng)建線程;線程之間是平等的。
進(jìn)程有父進(jìn)程和子進(jìn)程,獨(dú)立的內(nèi)存空間,唯一的標(biāo)識(shí)符:pid。

  • 速度

啟動(dòng)線程比啟動(dòng)進(jìn)程快
運(yùn)行線程和運(yùn)行進(jìn)程速度上是一樣的,沒(méi)有可比性
線程共享內(nèi)存空間,進(jìn)程的內(nèi)存是獨(dú)立的。

  • 創(chuàng)建

父進(jìn)程生成子進(jìn)程,相當(dāng)于復(fù)制一份內(nèi)存空間,進(jìn)程之間不能直接訪問(wèn)
創(chuàng)建新線程很簡(jiǎn)單,創(chuàng)建新進(jìn)程需要對(duì)父進(jìn)程進(jìn)行一次復(fù)制
一個(gè)線程可以控制和操作同級(jí)線程里的其他線程,但是進(jìn)程只能操作子進(jìn)程。

  • 交互

同一個(gè)進(jìn)程里的線程之間可以直接訪問(wèn)。
兩個(gè)進(jìn)程想通信必須通過(guò)一個(gè)中間代理來(lái)實(shí)現(xiàn)。

  • 調(diào)度

線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位

  • 并發(fā)性

不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個(gè)進(jìn)程的多個(gè)線程之間也可并發(fā)執(zhí)行

  • 擁有資源:

進(jìn)程是擁有資源的一個(gè)獨(dú)立單位,線程不擁有系統(tǒng)資源,但可以訪問(wèn)隸屬于進(jìn)程的資源.

  • 系統(tǒng)開銷:

在創(chuàng)建或撤消進(jìn)程時(shí),由于系統(tǒng)都要為之分配和回收資源,導(dǎo)致系統(tǒng)的開銷明顯大于創(chuàng)建或撤消線程時(shí)的開銷。

以上就是區(qū)分python中的進(jìn)程與線程的詳細(xì)內(nèi)容,更多關(guān)于python進(jìn)程與線程的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python執(zhí)行shell并獲取結(jié)果的詳細(xì)示例

    python執(zhí)行shell并獲取結(jié)果的詳細(xì)示例

    在Python中執(zhí)行Shell命令并獲取其結(jié)果,通??梢允褂胹ubprocess模塊,這個(gè)模塊允許我們啟動(dòng)新的進(jìn)程,連接到它們的輸入/輸出/錯(cuò)誤管道,并獲取它們的返回碼,下面是一個(gè)詳細(xì)的示例,展示了如何使用subprocess.run()函數(shù)來(lái)執(zhí)行Shell命令并獲取其輸出,需要的朋友可以參考下
    2024-07-07
  • Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作示例

    Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作示例

    這篇文章主要介紹了Python中l(wèi)ist查詢及所需時(shí)間計(jì)算操作,涉及Python列表list遍歷、查詢及時(shí)間消耗計(jì)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • 使用jupyter?notebook保存python代碼為.py格式問(wèn)題

    使用jupyter?notebook保存python代碼為.py格式問(wèn)題

    這篇文章主要介紹了使用jupyter?notebook保存python代碼為.py格式問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 對(duì)pyqt5多線程正確的開啟姿勢(shì)詳解

    對(duì)pyqt5多線程正確的開啟姿勢(shì)詳解

    今天小編就為大家分享一篇對(duì)pyqt5多線程正確的開啟姿勢(shì)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • 一個(gè)Python最簡(jiǎn)單的接口自動(dòng)化框架

    一個(gè)Python最簡(jiǎn)單的接口自動(dòng)化框架

    這篇文章主要為大家詳細(xì)介紹了一個(gè)Python最簡(jiǎn)單的接口自動(dòng)化框架,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python中sys.argv參數(shù)用法實(shí)例分析

    python中sys.argv參數(shù)用法實(shí)例分析

    這篇文章主要介紹了python中sys.argv參數(shù)用法,實(shí)例分析了python中sys.argv參數(shù)的功能、定義及使用技巧,需要的朋友可以參考下
    2015-05-05
  • scikit-learn線性回歸,多元回歸,多項(xiàng)式回歸的實(shí)現(xiàn)

    scikit-learn線性回歸,多元回歸,多項(xiàng)式回歸的實(shí)現(xiàn)

    這篇文章主要介紹了scikit-learn線性回歸,多元回歸,多項(xiàng)式回歸的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python閉包及裝飾器運(yùn)行原理解析

    Python閉包及裝飾器運(yùn)行原理解析

    這篇文章主要介紹了python閉包及裝飾器運(yùn)行原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python搭建Keras CNN模型破解網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)

    Python搭建Keras CNN模型破解網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)

    這篇文章主要介紹了Python搭建Keras CNN模型破解網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python引用DLL文件的方法

    python引用DLL文件的方法

    這篇文章主要介紹了python引用DLL文件的方法,涉及Python調(diào)用dll文件的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

龙里县| 石门县| 永新县| 英吉沙县| 揭西县| 望谟县| 吴忠市| 南部县| 托里县| 任丘市| 丹巴县| 右玉县| 浠水县| 临夏县| 永德县| 长子县| 图片| 册亨县| 临清市| 龙里县| 海门市| 同仁县| 土默特左旗| 集贤县| 靖边县| 巴塘县| 台东县| 邵武市| 翁牛特旗| 石城县| 安徽省| 连城县| 铅山县| 宜春市| 义马市| 化州市| 五指山市| 长兴县| 龙井市| 从化市| 淄博市|