什麼是作業系統中的多執行緒模型?
**多執行緒**是指將一個程序分解成多個較小的任務。每個任務都表示為或稱為“執行緒”。這意味著執行緒是程序的輕量級版本。一個程序中同時執行的多個執行緒稱為“多執行緒”。
作業系統的額外功能是支援多執行緒。
根據功能,執行緒可分為四類,如下所示:
一個程序,一個執行緒。
一個程序,多個執行緒。
多個程序,每個程序一個執行緒。
多個程序,每個程序多個執行緒。
讓我們看看以上功能如何在圖示中表示:

**一個程序,一個執行緒** - 這是傳統方法,其中程序只維護一個執行緒,因此稱為單執行緒方法。**例如** - MS-DOS 作業系統支援一個執行緒,一個程序的方法。
**一個程序,多個執行緒** - 在這裡,一個程序被分成多個執行緒。**例如** - JAVA 執行時環境。
**多個程序,每個程序一個執行緒** - 作業系統支援多個使用者程序,但每個程序只支援一個執行緒。**例如** - UNIX 作業系統。
**多個程序,每個程序多個執行緒** - 在這裡,每個程序都被分成多個執行緒。**例如** - Windows 2000,Solaris LINUX。
區別
程序和執行緒的主要區別如下:
| 程序 | 執行緒 |
|---|---|
| 程序不能共享相同的記憶體區域,這意味著它不能共享地址空間。 | 執行緒可以共享記憶體和檔案。 |
| 建立程序需要更多時間。 | 建立執行緒需要更少時間。 |
| 完成執行並終止也需要更多時間。 | 終止需要更少時間。 |
| 執行速度非常慢 | 執行速度非常快。 |
| 在兩個程序之間切換需要更多時間 | 在兩個執行緒之間切換需要更少時間。 |
| 實現程序之間的通訊有點困難。 | 兩個執行緒之間的通訊非常易於實現,因為執行緒共享記憶體。 |
| 需要系統呼叫才能相互通訊。 | 不需要系統呼叫。 |
| 程序是鬆散耦合的 | 執行緒是緊密耦合的。 |
| 執行需要更多資源。 | 需要更少的資源,因此我們通常稱執行緒為輕量級程序。 |
| 程序不適合並行活動 | 適合並行活動。 |
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP