首頁  >  文章  >  後端開發  >  取得並設定C語言中線程屬性的堆疊大小

取得並設定C語言中線程屬性的堆疊大小

WBOY
WBOY轉載
2023-09-13 13:17:02847瀏覽

取得並設定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</p><p>", stacksize);
   pthread_attr_setstacksize(&a, 67626);
   pthread_attr_getstacksize(&a, &stacksize);
   printf("New stack size= %d</p><p>", stacksize);
   return 0;
}

輸出

Current stack size = 50
New stack size= 67626

以上是取得並設定C語言中線程屬性的堆疊大小的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除