Thread 的 C 語言範例
阿新 • • 發佈:2018-12-09
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
參考文獻