ulimit 能看到进程堆栈大小8192k,单个线程的栈大小怎么指定,我通过pthread_attr_getstacksize看是262144,从其它资料看应该是256k,现在我使用jni函数AttachCurrentThread总是失败,网上找到资料说,256k栈空间太小会导致该函数失败,可以在创建线程的时候指定栈大小,但是线程不是我创建的,这条路不通,我想能不能调一下系统参数,修改默认的线程栈大小,用什么命令或方法,求大家执教!
by dongdangsanfeng - HP-UX - 2012-08-12 09:51:06 阅读(1695) 回复(0)
可以通过pthread_attr_setstacksize来设置进程的线程堆栈的大小 ulimit -s也可以设置线程堆栈的大小, 如果同时使用二者,ulimit -s会对pthread_attr_setstacksize产生什么样的影响? 通过pthread_attr_setstacksize来设置线程堆栈大小有什么限制吗? 谢谢大家
编写了一个程序,里面会创建一个线程来进行事务处理,结果发现程序失控了,那个创建出来的线程会挂死,后来把堆栈设为500K左右(调用pthread_attr_setstacksize),程序就正常了。 请教各位大侠,这个线程需要的堆栈大小如何估计呢?
各位兄弟姐妹,不知道AIX线程堆栈最大是多大,我用ulimit -s ulimited 修改之后,再次进去后它的值还是没改变,我是用管理员帐户改的呀,为什么没用呢。我的程序 不管是用GCC还是XLC编译,运行的时候都会出现bad_alloc的错误,我的程序使用了openmp,可能每个线程里的数据量太大,堆栈放不下,求各位解答啊。难道AIX下面,跑大程序真的不行吗?我输入ulimit -a后 下面显示的都是ulimited啊,按道理不是都没限制的吗?
这样是不是就设置了这个线程的堆栈大小?
#include
各位大侠好,最近我在AIX操作系统下,写了一个openmp的测试小程序,用的是XLC编译器,我的机器内存是8G,4cpu双核。在每个openmp开辟的并行线程中,定义了一个很大的valarray
pthread之线程堆栈 先来讲说线程内存相关的东西,主要有下面几条: 进程中的所有的线程共享相同的地址空间。任何声明为static/extern的变量或者堆变量可以被进程内所有的线程读写。一个线程真正拥有的唯一私有储存是处理器寄存器。线程栈可以通过暴露栈地址的方式与其它线程进行共享。 有大数据量处理的应用中,有时我们有必要在栈空间分配一个大的内存块或者要分配很多小的内存块,但是线程的栈空间的最大值在线程创建的时候...