linux 多线程基础4
六、线程的作用域
函数pthread_attr_setscope和pthread_attr_getscope分别用来设置和得到线程的作用域,这两个函数的定义如下:
7.
| 名称:: | pthread_attr_setscope pthread_attr_getscope | 
| 功能: | 获得/设置线程的作用域 | 
| 头文件: | #include <pthread.h> | 
| 函数原形: | int pthread_attr_setscope(pthread_attr_t *attr,int scope); int pthread_attr_getscope(const pthread_attr_t *attr,int *scope); | 
| 参数: | attr 线程属性变量 scope 线程的作用域 | 
| 返回值: | 若成功返回0,若失败返回-1。 | 
这两个函数具有两个参数,第1个是指向属性对象的指针,第2个是作用域或指向作用域的指针,作用域控制线程是否在进程内或在系统级上竞争资源,可能的值是PTHREAD_SCOPE_PROCESS(进程内竞争资源)PTHREAD_SCOPE_SYSTEM.(系统级上竞争资源)。
七、线程堆栈的大小
函数pthread_attr_setstacksize和pthread_attr_getstacksize分别用来设置和得到线程堆栈的大小,这两个函数的定义如下所示:
8.
| 名称:: | pthread_attr_getdetstacksize pthread_attr_setstacksize | 
| 功能: | 获得/修改线程栈的大小 | 
| 头文件: | #include <pthread.h> | 
| 函数原形: | int pthread_attr_getstacksize(const pthread_attr_t *restrict attr,size_t *restrict stacksize); int pthread_attr_setstacksize(pthread_attr_t *attr ,size_t *stacksize); | 
| 参数: | attr 线程属性变量 stacksize 堆栈大小 | 
| 返回值: | 若成功返回0,若失败返回-1。 | 
这两个参数具有两个参数,第1个是指向属性对象的指针,第2个是堆栈大小或指向堆栈大小的指针
如果希望改变栈的默认大小,但又不想自己处理线程栈的分配问题,这时使用pthread_attr_setstacksize函数就非常用用。
八、线程堆栈的地址
函数pthread_attr_setstackaddr和pthread_attr_getstackaddr分别用来设置和得到线程堆栈的位置,这两个函数的定义如下:
9.
| 名称:: | pthread_attr_setstackaddr pthread_attr_getstackaddr | 
| 功能: | 获得/修改线程栈的位置 | 
| 头文件: | #include <pthread.h> | 
| 函数原形: | int pthread_attr_getstackaddr(const pthread_attr_t *attr,void **stackaddf); int pthread_attr_setstackaddr(pthread_attr_t *attr,void *stackaddr); | 
| 参数: | attr 线程属性变量 stackaddr 堆栈地址 | 
| 返回值: | 若成功返回0,若失败返回-1。 | 
这两个函数具有两个参数,第1个是指向属性对象的指针,第2个是堆栈地址或指向堆栈地址的指针。
九、线程栈末尾的警戒缓冲区大小
函数pthread_attr_getguardsize和pthread_attr_setguardsize分别用来设置和得到线程栈末尾的警戒缓冲区大小,这两个函数的定义如下:
10.
| 名称:: | pthread_attr_getguardsize pthread_attr_setguardsize | 
| 功能: | 获得/修改线程栈末尾的警戒缓冲区大小 | 
| 头文件: | #include <pthread.h> | 
| 函数原形: | int pthread_attr_getguardsize(const pthread_attr_t *restrict attr,size_t *restrict guardsize); int pthread_attr_setguardsize(pthread_attr_t *attr ,size_t *guardsize); | 
| 参数: | |
| 返回值: | 若成功返回0,若失败返回-1。 | 
线程属性guardsize控制着线程栈末尾之后以避免栈溢出的扩展内存大小。这个属性默认设置为PAGESIZE个字节。可以把guardsize线程属性设为0,从而不允许属性的这种特征行为发生:在这种情况下不会提供警戒缓存区。同样地,如果对线程属性stackaddr作了修改,系统就会假设我们会自己管理栈,并使警戒栈缓冲区机制无效,等同于把guardsize线程属性设为0。
linux 多线程基础4的更多相关文章
- linux 多线程基础3
		一.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化.我们用pthread_attr_init函数对其初始化,用pthrea ... 
- linux 多线程基础2
		6. 名称:: pthread_detach 功能: 使线程进入分离状态. 头文件: #include <pthread.h> 函数原形: int pthread_detach(pthre ... 
- linux 多线程基础1
		一.什么是线程 在一个程序里的多个执行路线就叫做线程.更准确的定义是:线程是“一个进程内部的一个控制序列”. 典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情. ... 
- linux 多线程基础
		参考出处:http://www.cnblogs.com/skynet/archive/2010/10/30/1865267.html 1.进程与线程 进程是程序代码在系统中的具体实现.进程是拥有所需资 ... 
- c++linux多线程基础知识
		http://blog.csdn.net/lovecodeless/article/details/24929273 http://blog.csdn.net/Jiangweihll/article/ ... 
- Linux多线程与同步
		作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 典型的UNIX系统都支持一个进程创建多个线程(thread).在Linux进程基础 ... 
- 《Linux多线程服务端编程:使用muduo C++网络库》上市半年重印两次,总印数达到了9000册
		<Linux多线程服务端编程:使用muduo C++网络库>这本书自今年一月上市以来,半年之内已经重印两次(加上首印,一共是三次印刷),总印数达到了9000册,这在技术书里已经算是相当不错 ... 
- Kali Linux渗透基础知识整理(二)漏洞扫描
		Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ... 
- 推荐《Linux 多线程服务器端编程》
		赖勇浩(http://laiyonghao.com) 最近,有一位朋友因为工作需要,需要从网游的客户端编程转向服务器端编程,找我推荐一本书.我推荐了<Linux 多线程服务器端编程——使用 mu ... 
随机推荐
- 利用Linux系统生成随机密码的10种方法
			Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ... 
- 网站前端优化 -saveForSelf
			九.网站前端优化 – IMG 9.1.可以优化的图片 图片总共可以分为两类,一个是CSS IMAGES,另一个是产品图片. 9.2.CSS IMAGES CSS图片现在采用的方式是图片合并的方式,这样 ... 
- express cookie-session解惑
			express的中间件基于connect模块而来,所以相关文档可以直接参考 http://www.senchalabs.org/connect/ 使用cookie-session中间件过程中,比较困惑 ... 
- (转载)EhLib 在 Delphi 7 下的安装方法
			EhLib 在 Delphi 7 下的安装方法 1.将 EhLib 解压到一个目录,如:E:\VCL\EhLib: 2.将 EhLib 安装目录下 Common 目录.DataService 目录下的 ... 
- sql server2005主从数据库同步配置
			网站规模到了一定程度之后,该分的也分了,该优化的也做了优化,但是还是不能满足业务上对性能的要求:这时候我们可以考虑使用主从库.主从库是两台服务器上的两个数据库,主库以最快的速度做增删改操作+最新数据的 ... 
- 4071: [Apio2015]巴邻旁之桥
			Description 一条东西走向的穆西河将巴邻旁市一分为二,分割成了区域 A 和区域 B. 每一块区域沿着河岸都建了恰好 1000000001 栋的建筑,每条岸边的建筑都从 0 编号到 10000 ... 
- 关于Java(JDBC连接数据库)
			Processing SQL Statements with JDBC 处理JDBC中的SQL语句 这节主要是 JDBC 与数据库交互的基本步骤 JDBC的基石是DriverManager,通过它,J ... 
- 想学ps的,这全是精华,拿走不谢!!!
- Qt 子窗口内嵌到父窗口中(无边框附体show即可)good
			有时需要把一个子窗口内嵌进入父窗口当中. 我们可以这样做 1.新建一个QWidget 或者QDialog的子类 ClassA(父类为ClassB) 2.在新建类的构造函数中添加设置窗口属性 setWi ... 
- Realm for Android快速入门教程
			介绍 如果你关注安卓开发的最新趋势,你可能已经听说过Realm.Realm是一个可以替代SQLite以及ORMlibraries的轻量级数据库. 相比SQLite,Realm更快并且具有很多现代数据库 ... 
