成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

進程與線程的一個簡單解釋

番茄西紅柿 / 3189人閱讀

摘要:線程線程,有時被稱為輕量級進程,,是程序執(zhí)行流的最小單元。進程和線程區(qū)別進程是資源分配的基本單位。說得簡單點,下面這段代碼執(zhí)行的時候參考博文進程與線程的一個簡單解釋多線程和多進程的區(qū)別小結(jié)多線程還是多進程的選擇及區(qū)別加鎖

關(guān)于進程與線程的簡單理解(以工廠舉例:cup-》工廠,車間-》進程,線程-》工人),可以參考阮一峰的博文進程與線程的一個簡單圖文解釋

先來了解下進程和線程的概念
關(guān)于多進程和多線程,教科書上最經(jīng)典的一句話是“進程是資源分配的最小單位,線程是CPU調(diào)度的最小單位”。

進程(Process)

進程(Process)是計算機中的程序關(guān)于某數(shù)據(jù)集合上的一次運行活動,是系統(tǒng)進行資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。在早期面向進程設(shè)計的計算機結(jié)構(gòu)中,進程是程序的基本執(zhí)行實體;在當(dāng)代面向線程設(shè)計的計算機結(jié)構(gòu)中,進程是線程的容器。程序是指令、數(shù)據(jù)及其組織形式的描述,進程是程序的實體。

線程

線程(thread),有時被稱為輕量級進程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元。一個標(biāo)準(zhǔn)的線程由線程ID,當(dāng)前指令指針(PC),寄存器集合和堆棧組成。另外,線程是進程中的一個實體,是被系統(tǒng)獨立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點兒在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創(chuàng)建和撤消另一個線程,同一進程中的多個線程之間可以并發(fā)執(zhí)行。由于線程之間的相互制約,致使線程在運行中呈現(xiàn)出間斷性。線程也有就緒、阻塞運行三種基本狀態(tài)。就緒狀態(tài)是指線程具備運行的所有條件,邏輯上可以運行,在等待處理機;運行狀態(tài)是指線程占有處理機正在運行;阻塞狀態(tài)是指線程在等待一個事件(如某個信號量),邏輯上不可執(zhí)行。每一個程序都至少有一個線程,若程序只有一個線程,那就是程序本身。
線程是程序中一個單一的順序控制流程。進程內(nèi)一個相對獨立的、可調(diào)度的執(zhí)行單元,是系統(tǒng)獨立調(diào)度和分派CPU的基本單位指運行中的程序的調(diào)度單位。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。

進程和線程區(qū)別

進程是資源分配的基本單位。所有與該進程有關(guān)的資源,都被記錄在進程控制塊PCB中。以表示該進程擁有這些資源或正在使用它們。
另外,進程也是搶占處理機的調(diào)度單位,它擁有一個完整的虛擬地址空間。當(dāng)進程發(fā)生調(diào)度時,不同的進程擁有不同的虛擬地址空間,而同一進程內(nèi)的不同線程共享同一地址空間。
與進程相對應(yīng),線程與資源分配無關(guān),它屬于某一個進程,并與進程內(nèi)的其他線程一起共享進程的資源。

線程只由相關(guān)堆棧(系統(tǒng)?;蛴脩魲#┘拇嫫骱途€程控制表TCB組成。寄存器可被用來存儲線程內(nèi)的局部變量,但不能存儲其他線程的相關(guān)變量。
通常在一個進程中可以包含若干個線程,它們可以利用進程所擁有的資源。在引入線程的操作系統(tǒng)中,通常都是把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調(diào)度的基本單位。由于線程比進程更小,基本上不擁有系統(tǒng)資源,故對它的調(diào)度所付出的開銷就會小得多,能更高效的提高系統(tǒng)內(nèi)多個程序間并發(fā)執(zhí)行的程度,從而顯著提高系統(tǒng)資源的利用率和吞吐量。因而近年來推出的通用操作系統(tǒng)都引入了線程,以便進一步提高系統(tǒng)的并發(fā)性,并把它視為現(xiàn)代操作系統(tǒng)的一個重要指標(biāo)。

線程與進程的區(qū)別可以歸納為以下4點:

地址空間和其它資源(如打開文件):進程間相互獨立,同一進程的各線程間共享。某進程內(nèi)的線程在其它進程不可見。

通信:進程間通信IPC,線程間可以直接讀寫進程數(shù)據(jù)段(如全局變量)來進行通信——需要進程同步和互斥手段的輔助,以保證數(shù)據(jù)的一致性。

調(diào)度和切換:線程上下文切換比進程上下文切換要快得多。

在多線程OS中,進程不是一個可執(zhí)行的實體。

多進程和多線程的比較

一.為何需要多進程(或者多線程),為何需要并發(fā)?

這個問題或許本身都不是個問題。但是對于沒有接觸過多進程編程的朋友來說,他們確實無法感受到并發(fā)的魅力以及必要性。
我想,只要你不是整天都寫那種int main()到底的代碼的人,那么或多或少你會遇到代碼響應(yīng)不夠用的情況,也應(yīng)該有嘗過并發(fā)編程的甜頭。就像一個快餐點的服務(wù)員,既要在前臺接待客戶點餐,又要接電話送外賣,沒有分身術(shù)肯定會忙得你焦頭爛額的。幸運的是確實有這么一種技術(shù),讓你可以像孫悟空一樣分身,靈魂出竅,樂哉樂哉地輕松應(yīng)付一切狀況,這就是多進程/線程技術(shù)。
并發(fā)技術(shù),就是可以讓你在同一時間同時執(zhí)行多條任務(wù)的技術(shù)。你的代碼將不僅僅是從上到下,從左到右這樣規(guī)規(guī)矩矩的一條線執(zhí)行。你可以一條線在main函數(shù)里跟你的客戶交流,另一條線,你早就把你外賣送到了其他客戶的手里。

所以,為何需要并發(fā)?因為我們需要更強大的功能,提供更多的服務(wù),所以并發(fā),必不可少。

二.多進程

什么是進程。最直觀的就是一個個pid,官方的說法就:進程是程序在計算機上的一次執(zhí)行活動。
說得簡單點,下面這段代碼執(zhí)行的時候

參考博文:
進程與線程的一個簡單解釋
多線程和多進程的區(qū)別(小結(jié))
多線程還是多進程的選擇及區(qū)別
MYsql加鎖

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21745.html

相關(guān)文章

  • GIL 已經(jīng)被殺死了么?

    摘要:酷睿代在年取代了奔騰,主頻遠(yuǎn)低于此。該詞被敏捷開發(fā)團隊使用較多,含義與形式會略有不同,更改已經(jīng)開始將垃圾收集器的狀態(tài)轉(zhuǎn)到解釋器,因此每個子解釋器將擁有它自己的本該如此。結(jié)論死亡了嗎對于單線程的應(yīng)用程序,仍然存活。showImg(https://user-gold-cdn.xitu.io/2019/5/19/16ad09f554fdf443); 本文原創(chuàng)并首發(fā)于公眾號【Python貓】,未經(jīng)授...

    番茄西紅柿 評論0 收藏0
  • GIL 已經(jīng)被殺死了么?

    摘要:酷睿代在年取代了奔騰,主頻遠(yuǎn)低于此。該詞被敏捷開發(fā)團隊使用較多,含義與形式會略有不同,更改已經(jīng)開始將垃圾收集器的狀態(tài)轉(zhuǎn)到解釋器,因此每個子解釋器將擁有它自己的本該如此。結(jié)論死亡了嗎對于單線程的應(yīng)用程序,仍然存活。showImg(https://user-gold-cdn.xitu.io/2019/5/19/16ad09f554fdf443); 本文原創(chuàng)并首發(fā)于公眾號【Python貓】,未經(jīng)授...

    pkwenda 評論0 收藏0
  • GIL 已經(jīng)被殺死了么?

    摘要:酷睿代在年取代了奔騰,主頻遠(yuǎn)低于此。該詞被敏捷開發(fā)團隊使用較多,含義與形式會略有不同,更改已經(jīng)開始將垃圾收集器的狀態(tài)轉(zhuǎn)到解釋器,因此每個子解釋器將擁有它自己的本該如此。結(jié)論死亡了嗎對于單線程的應(yīng)用程序,仍然存活。 showImg(https://segmentfault.com/img/remote/1460000019229774); 本文原創(chuàng)并首發(fā)于公眾號【Python貓】,未經(jīng)授...

    xietao3 評論0 收藏0
  • 進程線程

    摘要:進程與線程進程和線程是操作系統(tǒng)的基本概念但是它們比較抽象不容易掌握。線程,有時被稱為輕量進程,,是程序執(zhí)行流的最小單元。 進程與線程 進程(process)和線程(thread)是操作系統(tǒng)的基本概念,但是它們比較抽象,不容易掌握。 有一個很好的類比,可以把它們解釋地清晰易懂。 CPU 計算機的核心是CPU,它承擔(dān)了所有的計算任務(wù)。它就像一座工廠,時刻在運行。 假定工廠的電力有限,一次...

    Jingbin_ 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<