09.20 嵌入式學習筆記:守護進程,線程詳解

嵌入式學習筆記:守護進程,線程詳解

1. 守護進程—擺脫終端

1.創建子進程,父進程退出; //孤兒進程

2.在子進程創建新的會話; //擺脫終端

3.更改當前工作目錄:保護數據;//

4.重設文件權限掩碼; //方便操作文件

5.關閉所有的文件描述符; //釋放不必要資源

意義\\目的:做重複性,週期性的工作;

特點:

不依賴與終端。

在後臺一直運行,從系統開始運行,到系統關閉結束。

2. 線程

線程是系統cpu資源調度的最小單位;(時間片)

線程是共享相同地址空間的多個任務;(共享主線程資源)

線程是輕量級的進程,進程之間的切換消耗的系統資源較大,故衍生出了線程。各個線程同時享有進程的地址空間,

3. 線程的同步互斥

保證進程共享數據操作的完整性。(原子操作);

讓線程按照規定的順序執行,實現同步機制。

4. 線程的操作函數

創建線程:pthread_create();

主動結束線程:pthread_exit();

回收線程資源:pthread_join();

線程函數:void * fun(void *);

同步互斥:

互斥鎖:(mutex)

初始化鎖:pthread_mutex_init();

上鎖:pthread_mutex_lock();

解鎖:pthread_mutex_unlock();

PV操作:(信號量)

初始化:msg_init()

P操作:msg_wait();阻塞 msg_trywait()非阻塞

V操作:msg_post():


分享到:


相關文章: