Linux下线程知识

来源:互联网 发布:Round it还是around it 编辑:程序博客网 时间:2024/06/07 04:57
线程的创建和标识
1.线程标识:一个pthread_t类型的变量
2.线程属性:一个pthread_attr_t类型结构体

3.创建线程:int pthread_create

线程标识:

1.线程的退出
*线程主函数执行完毕,自动退出
*线程执行过程中调用了pthread_exit();
*其他进程利用pthread_cancel() 要求该线程强制退出
2.pthread_cancel()向目标线程法Cancel信号,但如何处理Cancel信号则由目标线程自己决定,或者忽略、或者
立即终止、或者继续运行至Canceltion-point(取消点)
3.pthread_setcancelate(int state,int *oldstate)设置本线程对q取消信号的反应
4.pthread_setcanceltype()函数设置取消类型(立即取消,或运行到下一个取消点)
5.pthread_setcancel()函数设置取消点。
线程资源的回收
1.一个线程退出后其部分资源并不能被OS回收,必须等到其他线程获得其退出状态并最终回收剩余资源。
2.pthread_join()可以用于将当前线程挂起来等待指定线程的结束。这和函数一个线程阻塞的函数,调用它的函
数将一直等待到被等待的线程结束为止,当函数返回时,被等待线程的资源就被收回。
3.线程也可以利用pthread_detach解除自己与所属进程之间的绑定。分离之后,线程结束,资源被全部回收。
4.创建线程时也可以设定线程的分离属性。

线程的同步和互斥机制的实现是通过互斥锁机制(信号量)实现
线程常用的属性有:
1.绑定属性
2.分离属性
3.堆栈地址和大小
4.运行优先级
5.系统默认的属性为非绑定、非分离、缺省1M的堆栈以及与父进程同样级别的优先级
0 0
原创粉丝点击