C++关于线程栈尺寸实战

一 点睛

栈尺寸是线程的另外一个重要属性。这对于我们在线程函数中开设栈上的内存空间非常重要。局部变量、函数参数、返回地址等都存放在栈空间里,而动态分配的内存或全局变量都属于堆空间。注意在线程函数中开设局部变量(尤其是数组)不要超过默认栈尺寸大小。

二 获得线程默认栈尺寸大小和最小尺寸

#ifndef _GNU_SOURCE  
#define _GNU_SOURCE     /* To get pthread_getattr_np() declaration */  
#endif  
#include <pthread.h>  
#include <stdio.h>  
#include <stdlib.h>  
#include <unistd.h>  
#include <errno.h>  
#include <limits.h>
static void * thread_start(void *arg)  
{  
    int i,res;  
    size_t stack_size;
    pthread_attr_t gattr;  
    res = pthread_getattr_np(pthread_self(), &gattr);  
    if (res)  
        printf("pthread_getattr_np failed\n");  
    
    res = pthread_attr_getstacksize(&gattr, &stack_size);
    if (res)
        printf("pthread_getattr_np failed\n");
    
    printf("Default stack size is %u byte; minimum is %u byte\n
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值