1. 程式人生 > >Thread 的 C 語言範例

Thread 的 C 語言範例

Thread 的 C 語言範例

Process 與 Thread

Thread 在臺灣被稱為『執行緒』,但是在中國被稱為『執行緒』,作業系統教科書中通常會定義 Process 為:執行中的程式。因此假如您開了一個 Word 檔案,那就是有一個 Word 行程在執行,如果您又開了個命令列,那就是又有一個命令列行程在執行,如果又開第二個命令列,那就有兩個命令列行程在執行。

Thread 在作業系統中通常被定義為輕量級行程 (Light Weight Process),一個 Process 可以包含很多個 Thread,如下圖所示:

每個 Process 與 Thread 都會執行,而且執行到一半很可能就會因為進行輸出入或佔用 CPU 過久而被作業系統切換出去,改換另一個 Process 或 Thread 執行,這種概念稱為 Multitasking (多工)。

在 Windows 當中,我們可以按下 Ctrl-Alt-Del 鍵以顯示出系統的行程資訊,而在 Linux 中則可以用 ps (Process Status) 這個指令顯示行程資訊,以下是這兩個作業系統中的行程資訊範例。

Thread 交替執行的這種慨念可以用下圖表示。(Proces 也是如此,只是將圖中的 Thread 改為 Process 而已)

Thread 的範例

$ gcc georgeMary.c -lpthread -o georgeMary.o
$ ./georgeMary.o
George
----------------
Mary
George
----------------
Mary
George
----------------
George
----------------
Mary
George
----------------
George
----------------
Mary
George

參考文獻