教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

什么是線程?線程的分類

更新時間:2021年07月20日16時26分 來源:傳智教育 瀏覽次數:

好口碑IT培訓

線程是系統(tǒng)進行運算調度的最小單位,也被稱為輕量級進程,它包含在進程之中,是進程的實際運作單位。進程中可以包含多個線程,每個線程是進程中單一順序的控制流,可以并行執(zhí)行不同的任務。

線程由線程ID、當前指令指針(PC)、寄存器集合和堆棧組成,它不能獨立擁有系統(tǒng)資源,但它可與同屬一個進程的其它線程共享該進程所擁有的全部資源。

線程一般可分為以下幾種類型:

主線程:程序啟動時,操作系統(tǒng)會創(chuàng)建一個進程,與此同時會立即運行一個線程,該線程通常被稱為主線程。主線程的作用主要有兩個,一個是產生其他子線程,另一個是最后執(zhí)行各種關閉操作,例如文件的關閉。

子線程:程序中創(chuàng)建的其它線程。

守護線程(后臺線程):守護線程是在后臺為其它線程提供服務的線程,它獨立于程序,不會因程序的終止而結束。當進程中只剩下守護線程時,進程直接退出。

前臺線程:相對于守護線程的其它線程稱為前臺線程。

線程與進程相似,也具有五個狀態(tài),分別是新建態(tài)、就緒態(tài)、運行態(tài)、阻塞態(tài)和消亡態(tài),這些狀態(tài)之間的轉換如圖1所示。

1626763149576_11.png

圖1 線程狀態(tài)的轉換

由圖1可知,線程因某些條件發(fā)生時會由運行態(tài)轉換為阻塞態(tài),這些條件可能為以下任意一種:

(1) 線程主動調用sleep()函數進入休眠狀態(tài);

(2) 線程試圖獲取同步鎖,但是該鎖正被其它線程持有;

(3) 線程等待一些I/O操作完成;

(4) 線程等待某個條件觸發(fā)。




猜你喜歡:

什么是線程,線程的分類

怎樣保障多線程同步數據的安全?

Python多線程編程教程【2小時學會】

傳智教育python+大數據開發(fā)高手班

0 分享到:
和我們在線交談!