- 相關推薦
線程是什么_線程的特點
相信很多人都不知道線程是什么吧。以下是PINCAI小編整理的關于線程的相關內(nèi)容,歡迎閱讀和參考!
線程是什么_線程的特點
線程是什么
線程,有時被稱為輕量級進程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元。一個標準的線程由線程ID,當前指令指針(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)度單位。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。
線程的特點
在多線程OS中,通常是在一個進程中包括多個線程,每個線程都是作為利用CPU的基本單位,是花費最小開銷的實體。線程具有以下屬性。
1)輕型實體
線程中的實體基本上不擁有系統(tǒng)資源,只是有一點必不可少的、能保證獨立運行的資源。
線程的實體包括程序、數(shù)據(jù)和TCB。線程是動態(tài)概念,它的動態(tài)特性由線程控制塊TCB(Thread Control Block)描述。TCB包括以下信息:
(1)線程狀態(tài)。
(2)當線程不運行時,被保存的現(xiàn)場資源。
(3)一組執(zhí)行堆棧。
(4)存放每個線程的局部變量主存區(qū)。
(5)訪問同一個進程中的主存和其它資源。
用于指示被執(zhí)行指令序列的'程序計數(shù)器、保留局部變量、少數(shù)狀態(tài)參數(shù)和返回地址等的一組寄存器和堆棧。
2)獨立調(diào)度和分派的基本單位。
在多線程OS中,線程是能獨立運行的基本單位,因而也是獨立調(diào)度和分派的基本單位。由于線程很“輕”,故線程的切換非常迅速且開銷小(在同一進程中的)。
3)可并發(fā)執(zhí)行。
在一個進程中的多個線程之間,可以并發(fā)執(zhí)行,甚至允許在一個進程中所有線程都能并發(fā)執(zhí)行;同樣,不同進程中的線程也能并發(fā)執(zhí)行,充分利用和發(fā)揮了處理機與外圍設備并行工作的能力。
4)共享進程資源。
在同一進程中的各個線程,都可以共享該進程所擁有的資源,這首先表現(xiàn)在:所有線程都具有相同的地址空間(進程的地址空間),這意味著,線程可以訪問該地址空間的每一個虛地址;此外,還可以訪問進程所擁有的已打開文件、定時器、信號量機構(gòu)等。由于同一個進程內(nèi)的線程共享內(nèi)存和文件,所以線程之間互相通信不必調(diào)用內(nèi)核。
[線程是什么_線程的特點]
【線程是什么_線程的特點】相關文章:
java線程面試試題10-22
15個Java多線程面試題及回答09-22
記者節(jié)的特點是什么06-10
鋼骨架是什么?鋼骨架的特點06-05
工傷保險的特點是什么11-02
秋分是什么意思?它有什么特點08-29
防雷插排是什么-防雷排插的特點07-19
急性牙髓炎的疼痛特點是什么10-15
銀行匯票是什么_銀行匯票特點09-20