Computer >> Máy Tính >  >> Lập trình >> lập trình C

Nhận và đặt kích thước ngăn xếp của thuộc tính luồng trong C

Để lấy và đặt kích thước ngăn xếp của thuộc tính luồng trong C, chúng tôi sử dụng các thuộc tính luồng sau:

pthread_attr_getstacksize ()

Sử dụng để lấy kích thước ngăn xếp chủ đề. Thuộc tính stacksize cung cấp kích thước ngăn xếp tối thiểu được phân bổ cho ngăn xếp luồng. Trong trường hợp chạy thành công, thì nó cho giá trị 0, nếu không sẽ cho bất kỳ giá trị nào.

Nó cần hai đối số -

pthread_attr_getstacksize (pthread_attr_t * attr, size_t * stacksize)

  • Cái đầu tiên cho thuộc tính pthread.
  • Cái thứ hai để cung cấp kích thước của thuộc tính luồng.

pthread_attr_setstacksize ()

Được sử dụng để thiết lập kích thước ngăn xếp chủ đề mới. Thuộc tính stacksize cung cấp kích thước ngăn xếp tối thiểu được phân bổ cho ngăn xếp luồng. Trong trường hợp chạy thành công, thì nó cho giá trị 0, nếu không nó sẽ cho bất kỳ giá trị nào.

Nó cần hai đối số -

pthread_attr_setstacksize (pthread_attr_t * attr, size_t * stacksize)

  • Cái đầu tiên cho thuộc tính pthread.
  • Cái thứ hai để cung cấp kích thước của ngăn xếp mới tính bằng byte.

Thuật toán

 Begin Khai báo kích thước ngăn xếp và khai báo thuộc tính pthread a. Lấy kích thước ngăn xếp hiện tại bằng pthread_attr_getstacksize () và in nó. Đặt kích thước ngăn xếp mới bằng pthread_attr_setstacksize () và lấy kích thước ngăn xếp pthread_attr_getstacksize () và in nó. 

Mã mẫu

 #include  #include  #include  int main () {size_t stacksize; pthread_attr_t a; pthread_attr_getstacksize (&a, &stacksize); printf ("Kích thước ngăn xếp hiện tại =% d \ n", kích thước ngăn xếp); pthread_attr_setstacksize (&a, 67626); pthread_attr_getstacksize (&a, &stacksize); printf ("Kích thước ngăn xếp mới =% d \ n", kích thước ngăn xếp); trả về 0;} 

Đầu ra

 Kích thước ngăn xếp hiện tại =50 Kích thước ngăn xếp mới =67626