執行緒和工作架構
執行緒是一種作業系統功能,可讓應用程式邏輯分成數個並行的執行路徑。當複雜的應用程式有許多可同時執行的工作時,此功能就很有用處。
作業系統執行應用程式的執行個體時,會建立一個稱為處理序的單位來管理這個執行個體。處理序有執行緒。這是應用程式的程式碼所執行的程式化指令序列。例如,如果簡易應用程式中有單一的一組可序列執行的指令,那麼應用程式將僅有一個執行路徑或一個執行緒。較為複雜的應用程式可能會有多個工作,但這些工作可能需要一前一後執行,而不是以序列的方式執行。應用程式可針對每一項工作啟動個別的處理序來達成此目的。不過,啟動處理序是很耗費資源的作業。反之,應用程式可啟動個別的執行緒,這些就比較節省資源。另外,每個執行緒跟那些與處理序相關聯的其他執行緒,可分開排程執行。
執行緒能讓複雜的應用程式,以更有效率的方式來使用 CPU,即使電腦只有一個 CPU。只有一個 CPU 時,一次只能執行一個執行緒。如果有一個執行緒執行不需使用 CPU 的長時間作業,像是磁碟讀寫,另一個執行緒便可以一直執行,直到第一個作業完成為止。由於應用程式可在其他執行緒等待作業完成時執行一些執行緒,所以使 CPU 發揮最大功效。特別是多使用者、需要大量磁碟 I/O 的應用程式 (例如資料庫伺服器) 更是如此。有多個微處理器或 CPU 的電腦,可同時讓每個 CPU 執行一個執行緒。例如,如果一部電腦有 8 個 CPU,就可以同時執行 8 個執行緒。
在此章節中
主題 | 描述 |
---|---|
描述執行緒或 Fiber 如何排程來進行批次或工作。 |
|
描述作業系統如何在一部電腦的各個微處理器之間,平均分散 SQL Server 執行個體的執行緒。同時描述 affinity mask 組態選項。 |
|
描述在哪些狀況下開啟輕量型共用選項會有幫助。 |
|
描述在 SQL Server 2005 中所做的變更,以支援非一致記憶體存取 (NUMA) 架構。 |
|
描述執行緒或 Fiber 如何執行,以及描述用來設定執行優先順序的選項。 |