一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

線(xiàn)程和進(jìn)程的區別

時(shí)間:2020-12-12 14:24:39 常識 我要投稿

線(xiàn)程和進(jìn)程的區別

  線(xiàn)程和進(jìn)程二者都有優(yōu)先級的概念,那么他們兩個(gè)的區別在哪里呢?本文是YJBYS小編整理的線(xiàn)程和進(jìn)程的區別,僅供參考。

  進(jìn)程是什么?

  程序并不能單獨運行,只有將程序裝載到內存中,系統為它分配資源才能運行,而這種執行的程序就稱(chēng)之為進(jìn)程。程序和進(jìn)程的區別就在于:程序是指令的集合,它是進(jìn)程運行的靜態(tài)描述文本;進(jìn)程是程序的一次執行活動(dòng),屬于動(dòng)態(tài)概念。

  在多道編程中,我們允許多個(gè)程序同時(shí)加載到內存中,在操作系統的調度下,可以實(shí)現并發(fā)地執行。這是這樣的設計,大大提高了CPU的利用率。進(jìn)程的出現讓每個(gè)用戶(hù)感覺(jué)到自己獨享CPU,因此,進(jìn)程就是為了在CPU上實(shí)現多道編程而提出的。

  有了進(jìn)程為什么還要線(xiàn)程?

  進(jìn)程有很多優(yōu)點(diǎn),它提供了多道編程,讓我們感覺(jué)我們每個(gè)人都擁有自己的CPU和其他資源,可以提高計算機的利用率。很多人就不理解了,既然進(jìn)程這么優(yōu)秀,為什么還要線(xiàn)程呢?其實(shí),仔細觀(guān)察就會(huì )發(fā)現進(jìn)程還是有很多缺陷的,主要體現在兩點(diǎn)上:

  進(jìn)程只能在一個(gè)時(shí)間干一件事,如果想同時(shí)干兩件事或多件事,進(jìn)程就無(wú)能為力了。

  進(jìn)程在執行的過(guò)程中如果阻塞,例如等待輸入,整個(gè)進(jìn)程就會(huì )掛起,即使進(jìn)程中有些工作不依賴(lài)于輸入的數據,也將無(wú)法執行。

  如果這兩個(gè)缺點(diǎn)理解比較困難的話(huà),舉個(gè)現實(shí)的例子也許你就清楚了:如果把我們上課的過(guò)程看成一個(gè)進(jìn)程的話(huà),那么我們要做的是耳朵聽(tīng)老師講課,手上還要記筆記,腦子還要思考問(wèn)題,這樣才能高效的完成聽(tīng)課的任務(wù)。而如果只提供進(jìn)程這個(gè)機制的話(huà),上面這三件事將不能同時(shí)執行,同一時(shí)間只能做一件事,聽(tīng)的時(shí)候就不能記筆記,也不能用腦子思考,這是其一;如果老師在黑板上寫(xiě)演算過(guò)程,我們開(kāi)始記筆記,而老師突然有一步推不下去了,阻塞住了,他在那邊思考著(zhù),而我們呢,也不能干其他事,即使你想趁此時(shí)思考一下剛才沒(méi)聽(tīng)懂的一個(gè)問(wèn)題都不行,這是其二。

  現在你應該明白了進(jìn)程的缺陷了,而解決的辦法很簡(jiǎn)單,我們完全可以讓聽(tīng)、寫(xiě)、思三個(gè)獨立的過(guò)程,并行起來(lái),這樣很明顯可以提高聽(tīng)課的效率。而實(shí)際的操作系統中,也同樣引入了這種類(lèi)似的'機制——線(xiàn)程。

  線(xiàn)程的優(yōu)點(diǎn)

  因為要并發(fā),我們發(fā)明了進(jìn)程,又進(jìn)一步發(fā)明了線(xiàn)程。只不過(guò)進(jìn)程和線(xiàn)程的并發(fā)層次不同:進(jìn)程屬于在處理器這一層上提供的抽象;線(xiàn)程則屬于在進(jìn)程這個(gè)層次上再提供了一層并發(fā)的抽象。如果我們進(jìn)入計算機體系結構里,就會(huì )發(fā)現,流水線(xiàn)提供的也是一種并發(fā),不過(guò)是指令級的并發(fā)。這樣,流水線(xiàn)、線(xiàn)程、進(jìn)程就從低到高在三個(gè)層次上提供我們所迫切需要的并發(fā)!

  除了提高進(jìn)程的并發(fā)度,線(xiàn)程還有個(gè)好處,就是可以有效地利用多處理器和多核計算機,F在的處理器有個(gè)趨勢就是朝著(zhù)多核方向發(fā)展,在沒(méi)有線(xiàn)程之前,多核并不能讓一個(gè)進(jìn)程的執行速度提高,原因還是上面所有的兩點(diǎn)限制。但如果講一個(gè)進(jìn)程分解為若干個(gè)線(xiàn)程,則可以讓不同的線(xiàn)程運行在不同的核上,從而提高了進(jìn)程的執行速度。

  例如:我們經(jīng)常使用微軟的Word進(jìn)行文字排版,實(shí)際上就打開(kāi)了多個(gè)線(xiàn)程。這些線(xiàn)程一個(gè)負責顯示,一個(gè)接受鍵盤(pán)的輸入,一個(gè)進(jìn)行存盤(pán)等等。這些線(xiàn)程一起運行,讓我們感覺(jué)到我們輸入和屏幕顯示同時(shí)發(fā)生,而不是輸入一些字符,過(guò)一段時(shí)間才能看到顯示出來(lái)。在我們不經(jīng)意間,還進(jìn)行了自動(dòng)存盤(pán)操作。這就是線(xiàn)程給我們帶來(lái)的方便之處。

  進(jìn)程與線(xiàn)程的區別

  進(jìn)程是具有一定獨立功能的程序關(guān)于某個(gè)數據集合上的一次運行活動(dòng),進(jìn)程是系統進(jìn)行資源分配和調度的一個(gè)獨立單位。

  線(xiàn)程是進(jìn)程的一個(gè)實(shí)體, 是CPU調度和分派的基本單位,它是比進(jìn)程更小的能獨立運行的基本單位.線(xiàn)程自己基本上不擁有系統資源,只擁有一點(diǎn)在運行中必不可少的資源(如程序計數器,一組寄存器和棧),但是它可與同屬一個(gè)進(jìn)程的其他的線(xiàn)程共享進(jìn)程所擁有的全部資源。

  一個(gè)線(xiàn)程可以創(chuàng )建和撤銷(xiāo)另一個(gè)線(xiàn)程,同一個(gè)進(jìn)程中的多個(gè)線(xiàn)程之間可以并發(fā)執行。

  進(jìn)程和線(xiàn)程的主要差別在于它們是不同的操作系統資源管理方式。進(jìn)程有獨立的地址空間,一個(gè)進(jìn)程崩潰后,在保護模式下不會(huì )對其它進(jìn)程產(chǎn)生影響,而線(xiàn)程只是一個(gè)進(jìn)程中的不同執行路徑。線(xiàn)程有自己的堆棧和局部變量,但線(xiàn)程之間沒(méi)有單獨的地址空間,一個(gè)線(xiàn)程死掉就等于整個(gè)進(jìn)程死掉,所以多進(jìn)程的程序要比多線(xiàn)程的程序 健壯,但在進(jìn)程切換時(shí),耗費資源較大,效率要差一些。但對于一些要求同時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作,只能用線(xiàn)程,不能用進(jìn)程。

【線(xiàn)程和進(jìn)程的區別】相關(guān)文章:

設計并發(fā)服務(wù)器,使用多進(jìn)程與多線(xiàn)程有什么區別?12-03

關(guān)于linux查看進(jìn)程ps top區別09-30

Linux多線(xiàn)程:線(xiàn)程的分離與結合08-17

ssat和托福的區別10-14

咖啡的種類(lèi)和區別10-09

速錄和速記的區別10-01

綠茶和白茶的區別10-22

打工和創(chuàng )業(yè)的區別11-02

紋眉和畫(huà)眉的區別07-19

朗誦和播音的區別09-04

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看