并发:一台咖啡机两队人
并行:两台咖啡机两队人
线程----并发执行多个任务
同一个程序中的所有线程都会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段、以及堆内存段
线程间是共享虚拟地址空间的,无需采用写时复制来复制内存,也无需复制页表
pthread_create创建一个子线程
pthread_exit终止线程:主线程退出对子线程没有影响
pthread_equal比较两个线程ID是否相等
pthread_join和一个已经终止的线程进行连接;回收子线程的资源,这个函数是阻塞函数,调用一次回收一个子线程,一般在主线程中使用。
pthread_detach:分离线程,当被标记分离的线程终止时,其资源会自动释放。
pthread_cancel:取消线程(让线程终止),并不是立马终止,而是到取消点后才终止。取消点:系统规定号的一些系统调用,我们可以粗略的理解为从用户区到内核区的切换,这个位置称之为取消点
pthread_attr_init:对属性变量pthread_attr_t *attr进行初始化
pthread_attr_destroy:对属性变量pthread_attr_t *attr进行销毁
pthread_attr_getdetachstate:获取线程分离的状态
pthread_attr_setdetachstate:设置线程分离的状态
//创建一个线程属性变量
pthread_attr_t attr;
//初始化属性变量
pthread_attr_init(&attr);
//设置属性
pthread_attr_setdetachstate(