一、進行多任務處理一般有兩種類型:基於進程和基於線程
1)基於進程的多任務處理是程序的併發執行。
2)基於線程的多任務處理是同一程序的片段的併發執行
二、在進行進程與線程編程的編程前,我整理了一下進程與線程的額概念如圖:
三、在linux和在window下的進程和線程的創建使用函數是不一樣的,比如創建進程,linux下是fork(),win下的是createProcess()接下來的編程主要是在linux下的。
四、進程與線程的原語:
進程原語 | 線程原語 |
描述 |
fork | pthread_create | 創建新的控制流 |
exit | pthread_exit | 從現有的控制流中退出 |
waitpid | pthread_join | 從控制流中得到退出狀態 |
atexit | pthread_clean_push | 註冊在退出控制流時調用的函數 |
getpid | pthhread_self | 獲取控制流的ID |
pthread_clean_pop | 與pthread_clean_push搭配使用 | |
pthread_detach | 可以用於使線程進入分離狀態 | |
abort | phread_cancel | 請求控制流的非正常退出 |