সি-তে থ্রেড অ্যাট্রিবিউটের স্ট্যাক সাইজ পেতে এবং সেট করতে, আমরা নিম্নলিখিত থ্রেড অ্যাট্রিবিউটগুলি ব্যবহার করি:
pthread_attr_getstacksize()
থ্রেড স্ট্যাক আকার পেতে ব্যবহার করুন. স্ট্যাকসাইজ অ্যাট্রিবিউট থ্রেড স্ট্যাকের জন্য বরাদ্দ করা ন্যূনতম স্ট্যাকের আকার দেয়। একটি সফল রানের ক্ষেত্রে, এটি 0 দেয় অন্যথায় কোন মান দেয়।
এটি দুটি আর্গুমেন্ট লাগে −
pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize)
- pthread অ্যাট্রিবিউটের জন্য প্রথমটি।
- থ্রেড অ্যাট্রিবিউটের আকার দেওয়ার জন্য দ্বিতীয়টি৷ ৷
pthread_attr_setstacksize()
সেট নতুন থ্রেড স্ট্যাক আকার জন্য ব্যবহৃত. স্ট্যাকসাইজ অ্যাট্রিবিউট থ্রেড স্ট্যাকের জন্য বরাদ্দ করা ন্যূনতম স্ট্যাকের আকার দেয়। একটি সফল রানের ক্ষেত্রে, এটি 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\n", stacksize);
pthread_attr_setstacksize(&a, 67626);
pthread_attr_getstacksize(&a, &stacksize);
printf("New stack size= %d\n", stacksize);
return 0;
} আউটপুট
Current stack size = 50 New stack size= 67626