嵌入(ru)式學習筆記:守護進(jin)程,線程詳解
時間:2018-09-20 來源:未知
1. 守護進程—擺脫終(zhong)端
1.創建(jian)子進(jin)(jin)程,父進(jin)(jin)程退出(chu); //孤兒進(jin)(jin)程
2.在子進(jin)程(cheng)創建新的會(hui)話; //擺脫終端
3.更(geng)改(gai)當(dang)前工(gong)作目(mu)錄:保護(hu)數(shu)據;//
4.重設文件(jian)權限掩碼(ma); //方便操作文件(jian)
5.關閉所有的文件(jian)描(miao)述符; //釋放不必(bi)要資源(yuan)
意義\目的:做重復性,周期性的工作;
特點:
不(bu)依賴(lai)與終端。
在后臺一直(zhi)運行,從(cong)系統(tong)開始運行,到系統(tong)關閉結束。
2. 線程
線(xian)程是系統cpu資(zi)源(yuan)調度的最小(xiao)單位;(時(shi)間片(pian))
線程是共享相同地(di)址空(kong)間的(de)多個任務;(共享主線程資(zi)源)
線程是輕量級(ji)的(de)進(jin)(jin)程,進(jin)(jin)程之間的(de)切(qie)換消耗的(de)系統資(zi)源較大,故衍生(sheng)出(chu)了線程。各(ge)個線程同時(shi)享有進(jin)(jin)程的(de)地址空間,
3. 線程的(de)同步(bu)互斥
保證進程共享數據操作的完整性。(原子操作);
讓線(xian)程(cheng)按照規定(ding)的(de)順序執行,實現同步機制。
4. 線程的操作函數
創建(jian)線程:pthread_create();
主動結束(shu)線程(cheng):pthread_exit();
回(hui)收線程資源:pthread_join();
線程(cheng)函(han)數:void * fun(void *);
同步互斥:
互(hu)斥鎖(suo):(mutex)
初始(shi)化鎖:pthread_mutex_init();
上鎖(suo):pthread_mutex_lock();
解鎖:pthread_mutex_unlock();
PV操作:(信(xin)號量)
初始化(hua):msg_init()
P操作:msg_wait();阻塞 msg_trywait()非阻塞
V操作:msg_post():