সি-তে থ্রেড অ্যাট্রিবিউটের স্ট্যাক সাইজ গেট ও সেট করার জন্য নিচের থ্রেড অ্যাট্রিবিউটগুলো ব্যবহার করা হয়:
pthread_attr_getstacksize()
থ্রেডের স্ট্যাক সাইজ পাওয়ার জন্য। stacksize অ্যাট্রিবিউট থ্রেডের স্টাকে alokated মিনিমাম স্ট্যাক সাইজ দেয়। সাকসেসফুল হলে ০ রিটার্ন করে, অন্যথায় অন্য ভ্যালু।
দুটি আর্গুমেন্ট নেয়:
pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize)
- প্রথমটি: pthread অ্যাট্রিবিউটের জন্য।
- দ্বিতীয়টি: থ্রেড অ্যাট্রিবিউটের সাইজ পাওয়ার জন্য।
pthread_attr_setstacksize()
নতুন থ্রেডের স্ট্যাক সাইজ সেট করার জন্য। সাকসেসফুল হলে ০ রিটার্ন করে।
pthread_attr_setstacksize(pthread_attr_t *attr, size_t *stacksize)
- প্রথমটি: pthread অ্যাট্রিবিউটের জন্য।
- দ্বিতীয়টি: নতুন স্ট্যাক সাইজ বাইটে দিতে হয়।
অ্যালগরিদম
শুরু
স্ট্যাক সাইজ ও pthread অ্যাট্রিবিউট a ডিক্লেয়ার করুন।
pthread_attr_getstacksize() দিয়ে করেন্ট স্ট্যাকসাইজ পাওয়া ও প্রিন্ট করুন।
pthread_attr_setstacksize() দিয়ে নতুন স্ট্যাক সাইজ সেট করুন।
আবার pthread_attr_getstacksize() দিয়ে পাওয়া ও প্রিন্ট করুন।
শেষ
উদাহরণ কোড
#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