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