新聞中心

EEPW首頁 > 任務(wù)、進(jìn)程和線程的不同

任務(wù)、進(jìn)程和線程的不同

——
作者: 時(shí)間:2007-03-29 來源: 收藏
三個(gè)詞中,(task)是最抽象的,是一個(gè)一般性的術(shù)語,指由軟件完成的一個(gè)活動(dòng)。一個(gè)既可以是一個(gè),也可以是一個(gè)。簡(jiǎn)而言之,它指的是一系列共同達(dá)到某一目的的操作。例如,讀取數(shù)據(jù)并將數(shù)據(jù)放入內(nèi)存中。這個(gè)可以作為一個(gè)來實(shí)現(xiàn),也可以作為一個(gè)(或作為一個(gè)中斷任務(wù))來實(shí)現(xiàn)。

  (process)常常被定義為程序的執(zhí)行。可以把一個(gè)進(jìn)程看成是一個(gè)獨(dú)立的程序,在內(nèi)存中有其完備的數(shù)據(jù)空間和代碼空間。一個(gè)進(jìn)程所擁有的數(shù)據(jù)和變量只屬于它自己。

  (tread)則是某一進(jìn)程中一路單獨(dú)運(yùn)行的程序。也就是說,線程存在于進(jìn)程之中。一個(gè)進(jìn)程由一個(gè)或多個(gè)線程構(gòu)成,各線程共享相同的代碼和全局?jǐn)?shù)據(jù),但各有其自己的堆棧。由于堆棧是每個(gè)線程一個(gè),所以局部變量對(duì)每一線程來說是私有的。由于所有線程共享同樣的代碼和全局?jǐn)?shù)據(jù),它們比進(jìn)程更緊密,比單獨(dú)的進(jìn)程間更趨向于相互作用,線程間的相互作用更容易些,因?yàn)樗鼈儽旧砭陀心承┕┩ㄐ庞玫墓蚕韮?nèi)存:進(jìn)程的全局?jǐn)?shù)據(jù)。

  一個(gè)進(jìn)程和一個(gè)線程最顯著的區(qū)別是:線程有自己的全局?jǐn)?shù)據(jù)。線程存在于進(jìn)程中,因此一個(gè)進(jìn)程的全局變量由所有的線程共享。由于線程共享同樣的系統(tǒng)區(qū)域,操作系統(tǒng)分配給一個(gè)進(jìn)程的資源對(duì)該進(jìn)程的所有線程都是可用的,正如全局?jǐn)?shù)據(jù)可供所有線程使用一樣。

  在20世紀(jì)60年代初期,麻省理工學(xué)院的MULTICS操作系統(tǒng)中首先引入“進(jìn)程”這個(gè)概念,IBM公司的CTSS/360系統(tǒng)中則使用“任務(wù)”這個(gè)術(shù)語?!熬€程”概念的出現(xiàn)就更晚了。



關(guān)鍵詞: 進(jìn)程 任務(wù) 線程

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉