線程是獨立調(diào)度和分派的基本單位,。線程可以為操作系統(tǒng)內(nèi)核調(diào)度的內(nèi)核線程,,如Win32線程;由用戶進程自行調(diào)度的用戶線程,,如Linux平臺的POSIX Thread,;或者由內(nèi)核與用戶進程,如Windows 7的線程,,進行混合調(diào)度,。 同一進程中的多條線程將共享該進程中的全部系統(tǒng)資源,,如虛擬地址空間,,文件描述符和信號處理等等,。但同一進程中的多個線程有各自的調(diào)用棧(call stack),自己的寄存器環(huán)境(register context),,自己的線程本地存儲(thread-local storage),。 一個進程可以有很多線程,每條線程并行執(zhí)行不同的任務,。 特點 在多線程OS中,,通常是在一個進程中包括多個線程,,每個線程都是作為利用CPU的基本單位,是花費最小開銷的實體,。線程具有以下屬性。 1),、輕型實體 線程中的實體基本上不擁有系統(tǒng)資源,,只是有一點必不可少的、能保證獨立運行的資源,。 線程的實體包括程序、數(shù)據(jù)和TCB,。線程是動態(tài)概念,,它的動態(tài)特性由線程控制塊TCB(Thread Control Block)描述。 2),、獨立調(diào)度和分派的基本單位,。 在多線程OS中,線程是能獨立運行的基本單位,,因而也是獨立調(diào)度和分派的基本單位,。由于線程很“輕”,故線程的切換非常迅速且開銷?。ㄔ谕贿M程中的),。 3)、可并發(fā)執(zhí)行,。 在一個進程中的多個線程之間,,可以并發(fā)執(zhí)行,甚至允許在一個進程中所有線程都能并發(fā)執(zhí)行,;同樣,,不同進程中的線程也能并發(fā)執(zhí)行,充分利用和發(fā)揮了處理機與外圍設備并行工作的能力,。 4),、共享進程資源。 在同一進程中的各個線程,,都可以共享該進程所擁有的資源,,這首先表現(xiàn)在:所有線程都具有相同的地址空間(進程的地址空間),這意味著,線程可以訪問該地址空間的每一個虛地址,;此外,,還可以訪問進程所擁有的已打開文件、定時器,、信號量機構等,。由于同一個進程內(nèi)的線程共享內(nèi)存和文件,所以線程之間互相通信不必調(diào)用內(nèi)核,。 |
|
來自: 云南網(wǎng)絡營銷 > 《待分類》