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():