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的堆栈以及与父进程同样级别的优先级
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的堆栈以及与父进程同样级别的优先级
相关文章推荐
- linux远程登陆不要密码,使用authorized_keys不生效的解决方法
- 记录 Linux环境下java web项目CPU爆表 “事故”,肇事者:GC
- Centos安装Git
- linux常用命令
- Linux当中的一些名词理解
- atexit()函数
- [转+整理]关于linux静态库和动态库的分析
- Linux VPS上DenyHosts阻止SSH暴力攻击
- 开发中查看日志的几个基本的Linux命令
- Linux中的文件描述符与打开文件之间的关系
- Linux安装php环境
- Linux vi编辑器的基本命令
- Linux 搭建svn服务器
- I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之u-boot移植
- linux安装packages
- ArchLinux下shadow服务报错
- linux学习第六天
- I.MX6Q(TQIMX6Q/TQE9)学习笔记——内核启动与文件系统挂载
- VI打开和编辑多个文件的命令
- recv函数返回值说明