您的位置:首页 > 运维架构 > Linux

Linux下线程知识

2016-06-22 16:59 162 查看
线程的创建和标识

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的堆栈以及与父进程同样级别的优先级
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: