當前位置:編程學習大全網 - 遊戲軟體 - 什麽是線程

什麽是線程

線程是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。壹條線程指的是進程中壹個單壹順序的控制流,壹個進程中可以並發多個線程,每條線程並行執行不同的任務。

線程是獨立調度和分派的基本單位。線程可以為操作系統內核調度的內核線程,如Win32線程;由用戶進程自行調度的用戶線程,如Linux平臺的POSIX Thread;或者由內核與用戶進程,如Windows 7的線程,進行混合調度。

同壹進程中的多條線程將***享該進程中的全部系統資源,如虛擬地址空間,文件描述符和信號處理等等。但同壹進程中的多個線程有各自的調用棧(call stack),自己的寄存器環境(register context),自己的線程本地存儲(thread-local storage)。

壹個進程可以有很多線程,每條線程並行執行不同的任務。

線程特點

1、輕型實體

線程中的實體基本上不擁有系統資源,只是有壹點必不可少的、能保證獨立運行的資源。線程的實體包括程序、數據和TCB。線程是動態概念,它的動態特性由線程控制塊TCB(Thread Control Block)描述。

2、獨立調度和分派的基本單位

在多線程OS中,線程是能獨立運行的基本單位,因而也是獨立調度和分派的基本單位。由於線程很“輕”,故線程的切換非常迅速且開銷小(在同壹進程中的)。

3、可並發執行

在壹個進程中的多個線程之間,可以並發執行,甚至允許在壹個進程中所有線程都能並發執行;同樣,不同進程中的線程也能並發執行,充分利用和發揮了處理機與外圍設備並行工作的能力。

4、***享進程資源

在同壹進程中的各個線程,都可以***享該進程所擁有的資源,這首先表現在:所有線程都具有相同的地址空間(進程的地址空間),這意味著,線程可以訪問該地址空間的每壹個虛地址。

此外,還可以訪問進程所擁有的已打開文件、定時器、信號量機構等。由於同壹個進程內的線程***享內存和文件,所以線程之間互相通信不必調用內核。

  • 上一篇:枸棒棒吃了有什麽好處
  • 下一篇:淘寶上有什麽美味且便宜量大,卻不為人知的零食?
  • copyright 2024編程學習大全網