執行緒和工作架構

執行緒是一種作業系統功能,可讓應用程式邏輯分成數個並行的執行路徑。當複雜的應用程式有許多可同時執行的工作時,此功能就很有用處。

作業系統執行應用程式的執行個體時,會建立一個稱為處理序的單位來管理這個執行個體。處理序有執行緒。這是應用程式的程式碼所執行的程式化指令序列。例如,如果簡易應用程式中有單一的一組可序列執行的指令,那麼應用程式將僅有一個執行路徑或一個執行緒。較為複雜的應用程式可能會有多個工作,但這些工作可能需要一前一後執行,而不是以序列的方式執行。應用程式可針對每一項工作啟動個別的處理序來達成此目的。不過,啟動處理序是很耗費資源的作業。反之,應用程式可啟動個別的執行緒,這些就比較節省資源。另外,每個執行緒跟那些與處理序相關聯的其他執行緒,可分開排程執行。

執行緒能讓複雜的應用程式,以更有效率的方式來使用 CPU,即使電腦只有一個 CPU。只有一個 CPU 時,一次只能執行一個執行緒。如果有一個執行緒執行不需使用 CPU 的長時間作業,像是磁碟讀寫,另一個執行緒便可以一直執行,直到第一個作業完成為止。由於應用程式可在其他執行緒等待作業完成時執行一些執行緒,所以使 CPU 發揮最大功效。特別是多使用者、需要大量磁碟 I/O 的應用程式 (例如資料庫伺服器) 更是如此。有多個微處理器或 CPU 的電腦,可同時讓每個 CPU 執行一個執行緒。例如,如果一部電腦有 8 個 CPU,就可以同時執行 8 個執行緒。

本章節內容