什麼是多執行緒程式設計?


執行緒是CPU利用率的一個小單元。它包含執行緒ID、程式計數器、暫存器集和堆疊。它與屬於同一程序的其他執行緒共享程式碼段、資料段和其他作業系統資源,如開啟的檔案和訊號。

重量級程序只有一個控制執行緒。如果一個程序有多個控制執行緒,它可以同時執行多個任務。許多在現代PC上執行的軟體包都是多執行緒的。在這裡,應用程式實現為一個具有多個控制執行緒的單獨程序。

例如——考慮一個字處理器,它包含一個用於顯示圖形的執行緒,另一個執行緒用於響應使用者的按鍵,第三個執行緒用於執行拼寫和語法檢查。

參考單執行緒和多執行緒程序的圖表——

單執行緒

多執行緒程序

同樣,單個應用程式需要執行多個相同的任務。

例如——Web伺服器接受對網頁、影像等的客戶端請求。Web伺服器可能有多個客戶端同時訪問它。假設,如果Web伺服器作為單執行緒程序執行,它一次只能服務一個客戶端。因此,其他客戶端可能必須等待其請求得到服務。

作為接受請求的單一程序執行伺服器的一種解決方案是,伺服器接收一個請求,該請求建立一個單獨的程序來服務該請求。程序建立非常耗時且資源密集。

因此,使用包含多個執行緒的一個程序通常更高效。這稱為多執行緒程序。Web伺服器將建立單獨的執行緒來偵聽客戶端請求,而不是建立另一個程序。

多執行緒的優點

多執行緒的優點如下:

響應性

多執行緒是一個互動式應用程式,即使部分程式被阻塞或正在執行冗長的操作,它也能讓程式繼續執行,從而提高對使用者的響應速度。

資源共享

通常,執行緒共享其所屬程序的記憶體和資源。它允許應用程式在其相同的地址空間內具有多個不同的活動執行緒。

經濟性

分配記憶體和資源以建立程序的成本很高,因為執行緒共享其所屬程序的資源。建立和上下文切換執行緒更經濟。

多處理器架構的利用

在多處理器架構中,多執行緒可以大大提高效率,在多處理器架構中,執行緒可以在不同的處理器上並行執行。單個執行緒只能在一個CPU上執行。多執行緒提高了併發性。

更新於:2021年11月30日

2K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告