在 C 中獲取並設定執行緒屬性的堆疊大小


要在 C 中獲取並設定執行緒屬性的堆疊大小,請使用以下執行緒屬性

pthread_attr_getstacksize()

用於獲取執行緒堆疊大小。stacksize 屬性給出了分配給執行緒堆疊的最小堆疊大小。如果執行成功,則返回 0,否則返回任何值。

它需要兩個引數 -

pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize)

  • 第一個是 pthread 屬性。
  • 第二個是用於指定執行緒屬性大小。

pthread_attr_setstacksize()

用於設定新執行緒堆疊大小。stacksize 屬性給出了分配給執行緒堆疊的最小堆疊大小。如果執行成功,則返回 0,否則返回任何值。

它需要兩個引數 -

pthread_attr_setstacksize(pthread_attr_t *attr, size_t *stacksize)

  • 第一個是 pthread 屬性。
  • 第二個是用於指定新堆疊的大小(以位元組為單位)。

演算法

Begin
   Declare stack size and declare pthread attribute a.
   Gets the current stacksize by pthread_attr_getstacksize() and print it.
   Set the new stack size by pthread_attr_setstacksize() and get the stack size pthread_attr_getstacksize() and print it.
End

示例程式碼

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

int main() {
   size_t stacksize;
   pthread_attr_t a;
   pthread_attr_getstacksize(&a, &stacksize);
   printf("Current stack size = %d
", stacksize);    pthread_attr_setstacksize(&a, 67626);    pthread_attr_getstacksize(&a, &stacksize);    printf("New stack size= %d
", stacksize);    return 0; }

輸出

Current stack size = 50
New stack size= 67626

更新日期:2019-07-30

1k+ 次瀏覽

開始了您的職業生涯

透過完成課程獲取認證

開始
廣告