线程与进程
线程
线程是轻量级的进程,本质仍是进程(在Linux环境下)。
二者区别:
进程:有独立的PCB,且有独立的地址空间。
线程:有独立的PCB,但是没有独立的地址空间。
线程:最小的执行单位
进程:最小的分配资源单位
命令:ps -Lf 进程Id —线程号
创建线程: pthread_create
增加头文件 ”pthread.h“
线程共享资源
1.文件描述符表
2.每种信号的处理方式
3.当前工作目录
4.用户ID和组ID
5.内存地址空间、共享全局变量
线程非共享资源
1.线程id
2.处理器现场和栈指针
3.独立的栈空间
4.errno变量
5.信号屏蔽字
6.调度优先级
##线程优缺点
优点:
1.提高程序并发性
2.开销小
3.数据通信、共享数据方便
缺点:
1.属于库函数
2.调试、编写困难、gdb不支持
3.对信号支持不好
创建线程
int ptnread_create(pthread_t *thread,const pthread_attr-t *attr,void * (*start rotine)(void *),void *arg);
成功:0
失败:错误号
参数1:传出参数,保存系统为我们分配好的新线程ID
参数2:线程属性,通常传NULL
参数3:回调子线程函数名
参数4:参3子线程函数需要的参数,没有的话传NULL