linux多线程学习(三)——线程属性设置
在上一篇文章中,介绍了线程的创建和退出,以及相关函数的使用。其中pthread_create函数的第二个参数,是关于线程属性的设置,这也是今天所有讲述的。这些属性主要包括邦定属性、分离属性、堆栈地址、堆栈大小、优先级。其中系统默认的是非邦定、非分离、缺省1M的堆栈、与父进程同样级别的优先级。在pthread_create中,把第二个参数设置为NULL的话,将采用默认的属性配置。
(1)邦定属性。
在LINUX中,采用的是“一对一”的线程机制。也就是一个用户线程对应一个内核线程。邦定属性就是指一个用户线程固定地分配给一个内核线程,因为CPU时间片的调度是面向内核线程(轻量级进程)的,因此具有邦定属性的线程可以保证在需要的时候总有一个内核线程与之对应,而与之对应的非邦定属性就是指用户线程和内核线程的关系不是始终固定的,而是由系统来分配。
(2)分离属性。
分离属性是决定以一个什么样的方式来终止自己。在非分离情况下,当一个线程结束时,它多占用的线程没有得到释放,也就是没有真正的终止,需要通过pthread_join来释放资源。而在分离属性情况下,一个线程结束时会立即释放它所占有的系统资源。但这里有一点要注意的是,如果设置一个线程分离属性,而这个线程又运行得非常快的话,那么它很可能在pthread_create函数返回之前就终止了线程函数的运行,它终止以后就很有可能将线程号和系统资源移交给其他的线程使用,这时调用pthread_create的线程就得到错误的线程号。
这些属性都是通过一些函数来完成的,通常先调用pthread_attr_init来初始化,之后来调用相应的属性设置函数。
1、pthread_attr_init
功能: 对线程属性变量的初始化。
头文件: <pthread.h>
函数原型: int pthread_attr_init (pthread_attr_t* attr);
函数传入值:attr:线程属性。
函数返回值:成功: 0
失败: -1
2、pthread_attr_setscope
功能: 设置线程绑定属性。
头文件: <pthread.h>
函数原型: int pthread_attr_setscope (pthread_attr_t* attr, int scope);
函数传入值:attr: 线程属性。
&nb
相关文档:
linux下vi命令大全
默认分类 2009-04-12 14:59 阅读1663 评论2
字号: 大大 中中 小小
文本编辑器是所有计算机系统中最常用的一种工具。使用最为广泛的是vi,而vi命令繁多,各大论坛基本上都有总结!为了大家学习方便,请自由转发! &nb ......
追根究底 http://blog.csdn.net/cataol/ cataol@hotmail.com 欢迎转载,但请保留作者信息 这两天在学习Linux驱动相关的资料,在这里做一下学习笔记,以便以后查询。以前也有做过工作方面的知识整理,可惜在硬盘里零零散散,甚至有些都被删掉了,唉。 & ......
实现程序在后台运行:
[程序] &
但如果忘了输入&,但又不想把程序停止后重新启动,
你可以这样做:
按Ctrl+z,暂停前台工作,
然后用jobs命令查看当前shell一共启动了多少后台程序,你可以看到你的程序在其中,
它的状态是stopp ......
最近,有个朋友老是问VPN的事情。结合我的体会,算是给他准备一个专题文章吧。 1.到底什么是VPN
VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在Internet ......
网络信息查看
查看网路接口信息
1.了解linux中的网络接口设备
$/sbin/ifconfig 查看所有活动网络接口信息,其中包括一个lo环回端口。
2.查看指定网络接口的信息
$/sbin/ ......