Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Lấy và đặt kích thước stack của thread attribute trong C

Để lấy và đặt kích thước stack của thread attribute trong C, dùng các thuộc tính thread sau:

pthread_attr_getstacksize()

Lấy kích thước stack hiện tại của thread. Thuộc tính stacksize cho kích thước tối thiểu cấp phát cho stack. Thành công trả 0, thất bại trả giá trị khác.

pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize)
  • Tham số 1: pthread attribute.
  • Tham số 2: nhận kích thước stack.

pthread_attr_setstacksize()

Đặt kích thước stack mới cho thread. Thành công trả 0, thất bại trả giá trị khác.

pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize)
  • Tham số 1: pthread attribute.
  • Tham số 2: kích thước stack mới (byte).

Thuật toán

Begin
    Khai báo stacksize và pthread attribute a.
    Lấy stacksize hiện tại bằng pthread_attr_getstacksize() và in ra.
    Đặt stacksize mới bằng pthread_attr_setstacksize() và lấy lại in ra.
End

Ví dụ

#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 = %zu\n", stacksize);
    pthread_attr_setstacksize(&a, 67626);
    pthread_attr_getstacksize(&a, &stacksize);
    printf("New stack size = %zu\n", stacksize);
    return 0;
}

Kết quả

Current stack size = 50
New stack size = 67626