當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > 嵌入式學(xué)習(xí)筆記:守護(hù)進(jìn)程,線程詳解
1. 守護(hù)進(jìn)程—擺脫終端
1.創(chuàng)建子進(jìn)程,父進(jìn)程退出; //孤兒進(jìn)程
2.在子進(jìn)程創(chuàng)建新的會(huì)話; //擺脫終端
3.更改當(dāng)前工作目錄:保護(hù)數(shù)據(jù);//
4.重設(shè)文件權(quán)限掩碼; //方便操作文件
5.關(guān)閉所有的文件描述符; //釋放不必要資源
意義\目的:做重復(fù)性,周期性的工作;
特點(diǎn):
不依賴與終端。
在后臺(tái)一直運(yùn)行,從系統(tǒng)開始運(yùn)行,到系統(tǒng)關(guān)閉結(jié)束。
2. 線程
線程是系統(tǒng)cpu資源調(diào)度的最小單位;(時(shí)間片)
線程是共享相同地址空間的多個(gè)任務(wù);(共享主線程資源)
線程是輕量級(jí)的進(jìn)程,進(jìn)程之間的切換消耗的系統(tǒng)資源較大,故衍生出了線程。各個(gè)線程同時(shí)享有進(jìn)程的地址空間,
3. 線程的同步互斥
保證進(jìn)程共享數(shù)據(jù)操作的完整性。(原子操作);
讓線程按照規(guī)定的順序執(zhí)行,實(shí)現(xiàn)同步機(jī)制。
4. 線程的操作函數(shù)
創(chuàng)建線程:pthread_create();
主動(dòng)結(jié)束線程:pthread_exit();
回收線程資源:pthread_join();
線程函數(shù):void * fun(void *);
同步互斥:
互斥鎖:(mutex)
初始化鎖:pthread_mutex_init();
上鎖:pthread_mutex_lock();
解鎖:pthread_mutex_unlock();
PV操作:(信號(hào)量)
初始化:msg_init()
P操作:msg_wait();阻塞 msg_trywait()非阻塞
V操作:msg_post():