5-1:线程

线程概念

每个线程都包含有表示执行环境所必需的信息
[线程ID,一组寄存器值,栈,调度优先级,策略,信号屏蔽字,errno,线程私有数据]
进程的可执行程序代码,全局内存,堆,栈,文件描述符对进程内所有线程均可见.

线程标识

int pthread_equal(pthread_t tidl, pthread_t tid2);
pthread_t pthread_self(void);

线程创建

int pthread_create(
	pthread_t *restrict tidp,// 获取线程ID
	const pthread_attr_t *restrict attr,
	void *(*start_rtn)(void*),
	void *restrict arg);

线程退出

1.从处理函数返回
2.被同进程的其他线程取消
3.pthread_exit
void pthread_exit(void *rval_ptr);
// 等待指定线程停止/终止
int pthread_join(pthread_t thread, void **rval_ptr);
// 取消同一进程内某线程--提出请求,然后返回
int pthread_cancel(pthread_t tid);
// 分离线程
int pthread_detach(pthread_t tid);
- 对未分离线程,可调pthread_join以获取线程退出状态,回收其资源.
对分离的线程,线程终止/停止时,关联资源也自动释放.不可对其用pthread_join.

猜你喜欢

转载自blog.csdn.net/x13262608581/article/details/110224557
5-1