六、线程的作用域

函数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。

Posix多线程编程学习笔记(二)—线程属性(3)相关推荐

  1. 多线程编程学习笔记——线程池(二)

    接上文 多线程编程学习笔记--线程池(一) 三.线程池与并行度 此示例是学习如何应用线程池实现大量的操作,及与创建大量线程进行工作的区别. 1. 代码如下 using System; using Sy ...

  2. 多线程编程学习笔记——任务并行库(二)

    接上文 多线程编程学习笔记--任务并行库(一) 三.   组合任务 本示例是学习如何设置相互依赖的任务.我们学习如何创建一个任务的子任务,这个子任务必须在父任务执行结束之后,再执行. 1,示例代码如下 ...

  3. 多线程编程学习笔记——任务并行库(三)

    接上文 多线程编程学习笔记--任务并行库(一) 接上文 多线程编程学习笔记--任务并行库(二) 六.   实现取消选项 本示例学习如何实现基于Task的异步操作进行取消流程,以及在任务真正运行前如何知 ...

  4. 多线程编程学习笔记——async和await(三)

    接上文 多线程编程学习笔记--async和await(一) 接上文 多线程编程学习笔记--async和await(二) 五.   处理异步操作中的异常 本示例学习如何在异步函数中处理异常,学习如何对多 ...

  5. Linux与C++11多线程编程(学习笔记)

    多线程编程与资源同步 在Windows下,主线程退出后,子线程也会被关闭; 在Linux下,主线程退出后,系统不会关闭子线程,这样就产生了僵尸进程 3.2.1创建线程 Linux 线程的创建 #inc ...

  6. 多线程编程学习笔记——使用并发集合(三)

    接上文 多线程编程学习笔记--使用并发集合(一) 接上文 多线程编程学习笔记--使用并发集合(二) 四.   使用ConcurrentBag创建一个可扩展的爬虫 本示例在多个独立的即可生产任务又可消费 ...

  7. 【多线程编程学习笔记6】终止线程执行,千万别踩这个坑!

    申明:本学习笔记是在该教程的基础上结合自己的学习情况进行的总结,不是原创,想要看原版的请看C语言中文网的多线程编程(C语言+Linux),该网站有很多好的编程学习教程,尤其是关于C语言的. 在< ...

  8. 网易云课堂微专业--Java高级开发工程师--多线程并发编程--学习笔记(二)

    文章目录 第一章 多线程并发编程 第二节 线程安全问题 1.2.1 线程安全之可见性问题 多线程中的问题 从内存结构到内存模型 工作内存缓存 指令重排序 内存模型的含义 Shared Variable ...

  9. python3多线程编程_Python 3多线程编程学习笔记-基础篇

    本文是学习<Python核心编程>的学习笔记,介绍了Python中的全局解释器锁和常用的两个线程模块:thread, threading,并对比他们的优缺点和给出简单的列子. 全局解释器锁 ...

最新文章

  1. 局部加权线性回归(Local Weighted Linear Regression)+局部加权回归+局部线性回归
  2. python要不要装pycharm-python安装教程 Pycharm安装详细教程
  3. V神又在操心区块链技术落地,以太坊大涨!
  4. mysql中需要提交的操作_MySQL常用操作及基础知识
  5. 靶场练习第二十二天~vulnhub靶场之Momentum-2
  6. 一份从入门到精通NLP的完整指南 | NLPer
  7. bert 多义词_BERT之后,GLUE基准升级为SuperGLUE:难度更大
  8. html 图片墙效果,基于html5实现的图片墙效果
  9. 可执行镜像——开发环境的Docker化之路
  10. java中Long的比较
  11. 尽量少一点甲方思维,也尽量少一点弱势方思维
  12. coreldraw x5 选择工具快捷键_CorelDRAW设置和优化提高工作效率
  13. Java 理论与实践: 处理 InterruptedException(转)
  14. 几个IE与Firefox的兼容性问题 (一、网络转载)
  15. 私活后的 WPF 设计经验总结
  16. 遇到ffmpeg错误:non monotonically increasing dts to muxer in stream
  17. 海通证券金融云思考与实践(上)
  18. 全国省、市、县(区)编码表
  19. Echarts使用教程
  20. Python+OpenCV3.3图像处理视频教程-贾志刚-专题视频课程

热门文章

  1. (电脑问题) win10飞行模式无法关闭和突然连接不上网络解决方法
  2. 解决aria2下载磁力链接或bt文件时没有速度或速度为0
  3. 五步移相法matlab程序_用MATLAB软件对逆变电路移相调压进行仿真,30°,60°,90°的波形,并用分段分析法分析其原理_学小易找答案...
  4. BootStrap之标签页切换
  5. AJAX 请求 NIDE 搭建简单服务
  6. springboot发送邮件(QQ邮箱)
  7. 利用OneDNS同步chrome数据
  8. vue 分享给好友 点击分享按钮_点击网页分享按钮,触发微信分享功能
  9. Centos6.4忘记密码 单机下修改root密码
  10. minigui3.2 安装教程