摘 要:在只有一塊CPU的電腦上,CPU可以輪流執行多個程序,我們將一個進程中運行的多個程序稱為線程。在多線程的操作系統中,每個線程都是作為利用CPU的基本單位,是花費最小開銷的實體。本文講述了線程的屬性、控制等問題。
關鍵詞:線程 信號量 掛起與解掛
中圖分類號:TN919.8 文獻標識碼:A 文章編號:1674-098X(2013)04(c)-0051-01
1 線程的屬性與狀態
線程具有4個屬性:(1)輕型級:線程中的實體基本上不擁有系統資源,只是有一點必不可少的、能保證獨立運行的資源。(2)獨立調度和分派的基本單位:線程是能獨立運行的基本單位,因而也是獨立調度和分派的基本單位。(3)可并發執行:在一個進程中的多個線程之間,可以并發執行,甚至允許在一個進程中所有線程都能并發執行;同樣,不同進程中的線程也能并發執行。(4)共享進程資源:在同一進程中的各個線程,都可以共享該進程所擁有的資源,比如,所有線程都具有相同的地址空間,線程可以訪問該地址空間的每一個虛地址,還可以訪問進程所擁有的已打開文件、定時器、信號量等。
new為新生線程,它還沒有運行。一旦調用start方法,線程進入runnable可運行狀態。在可運行狀態中的線程不一定始終運行,這依賴操作系統的服務。當一個線程試圖獲取一個內部的對象鎖,而該鎖被其他線程持有,線程進入blocked阻塞狀態。當線程等待另一個線程通知調度器一個條件時,進入waiting等待狀態。當使用超時參數時,會導致線程進入timed waiting計時等待狀態。在阻塞狀態和等待狀態的線程所需的條件滿足時,它們會回到runnable可運行狀態?!?br>