线程堆栈大小的使用介绍
来源:互联网 发布:vcd音频提取软件 编辑:程序博客网 时间:2024/05/19 14:18
先来讲说线程内存相关的东西,主要有下面几条:
- 进程中的所有的线程共享相同的地址空间。
- 任何声明为 static/extern 的变量或者堆变量可以被进程内所有的线程读写。
- 一个线程真正拥有的唯一私有储存是处理器寄存器。
- 线程栈可以通过暴露栈地址的方式与其它线程进行共享。
有大数据量处理的应用中,有时我们有必要在栈空间分配一个大的内存块或者要分配很多小的内存块,但是线程的栈空间的最大值在线程创建的时候就已经定下来了,如果栈的大小超过个了个值,系统将访问未授权的内存块,毫无疑问,再来的肯定是一个段错误。
pthread_create()创建线程时,若不指定分配堆栈大小,系统会分配默认值,通过命令查看方法如下:
上面的单位为 Kb,所以,线程默认堆栈大小为 8M。
也可以在终端下通过 ulimit -s value 用来重新设置 stack 大小。
一般来说,默认堆栈大小为 8388608,堆栈最小为 16384, 单位为字节。在某些嵌入式系统中,如果其内存不是很大,若采用默认值的话,会导致出现问题,若内存不足,则 pthread_create() 会返回 12,其定义如下:
我们用 pthread_attr_getstacksize() 和 pthread_attr_setstacksize() 的方法来查看和设置线程的堆栈空间。
查看线程堆栈大小示例代码如下:
编译代码时,需要加上 -lpthread,运行结果如下:
设置线程堆栈大小示例代码如下:
运行结果如下:
本教程示例代码下载请点此链接:http://download.csdn.net/detail/tennysonsky。
参考资料:
http://www.cnblogs.com/qq78292959
http://blog.csdn.net/horstlinux
阅读全文
0 0
- 线程堆栈大小的使用介绍
- 线程堆栈大小的使用介绍
- 线程堆栈大小的使用介绍
- 【Linux系统编程】线程堆栈大小的使用介绍
- 线程堆栈大小 pthread_attr_setstacksize 的使用
- 线程堆栈大小 pthread_attr_setstacksize 的使用
- 关于线程堆栈大小的注意事项
- 关于线程堆栈大小的注意事项
- 关于线程堆栈大小的注意事项-转
- 如何使用 Editbin 调整 SQL Server 线程的堆栈大小(dump)
- SylixOS线程堆栈大小浅析
- 线程堆栈大小 pthread_attr_setstacksize 的使用【转】 http://www.cnblogs.com/qq78292959/archive/2012/03/29/2423821
- 程序的堆栈大小
- 堆栈大小的设置
- Win32 Thread Basics 线程 默认堆栈大小
- 设置线程堆栈大小 每个线程都有一个堆栈那么,这个堆栈多大呢?
- C16、线程的堆栈
- 线程堆栈的理解
- C++内存管理
- HDU 1010 Tempter of the Bone
- delphi7 winsock
- Cocos骨骼动画功能解密
- [模拟]HDU 5983 Pocket Cube
- 线程堆栈大小的使用介绍
- Java开发文字水印
- 服务器下的python调试方法
- android 随笔
- 【51Nod】1137 矩阵乘法
- 事务和连接池
- jquery源码分析
- [C++ Primer CH06] 第6章 函数(笔记)
- 疯狂java讲义第十六章(多线程)书后习题我的解答以及反思