কম্পিউটার

POSIX থ্রেড লাইব্রেরি


Pthreads POSIX স্ট্যান্ডার্ড (IEEE 1003.1c) থ্রেড তৈরি এবং সিঙ্ক্রোনাইজেশনের জন্য একটি API সংজ্ঞায়িত করে। এটি থ্রেড আচরণের জন্য স্পেসিফিকেশন সংজ্ঞায়িত করে, একটি বাস্তবায়ন নয়। স্পেসিফিকেশনটি OS ডিজাইনাররা তাদের ইচ্ছামত যে কোন উপায়ে প্রয়োগ করতে পারে। অনেক সিস্টেম Pthreads স্পেসিফিকেশন বাস্তবায়ন করে; লিনাক্স, ম্যাক ওএস এক্স এবং সোলারিস সহ বেশিরভাগ ইউনিক্স-টাইপ সিস্টেম। যদিও Windows স্থানীয়ভাবে Pthreads সমর্থন করে না, Windows এর জন্য কিছু তৃতীয় পক্ষের বাস্তবায়ন উপলব্ধ। চিত্র 4.9-এ দেখানো C প্রোগ্রামটি একটি মাল্টিথ্রেডেড প্রোগ্রাম তৈরি করার জন্য মৌলিক Pthreads API প্রদর্শন করে যা একটি পৃথক থ্রেডে একটি অঋণমূলক পূর্ণসংখ্যার সমষ্টি গণনা করে। Pthreads প্রোগ্রামে একটি নির্দিষ্ট ফাংশনে পৃথক থ্রেডগুলি কার্যকর করা শুরু করে। নীচের প্রোগ্রামে, এটি রানার() ফাংশন। যখন এই প্রোগ্রামটি শুরু হয়, তখন main() এ নিয়ন্ত্রণের একটি একক থ্রেড শুরু হয়। তারপর main() একটি দ্বিতীয় থ্রেড তৈরি করে যা কিছু প্রাথমিককরণের পরে রানার() ফাংশনে নিয়ন্ত্রণ শুরু করে। উভয় থ্রেড বিশ্বব্যাপী ডেটা যোগফল ভাগ করে নেয়।

উদাহরণ

#include<pthread.h>
#include<stdio.h>
int sum;
/* this sum data is shared by the thread(s) */
/* threads call this function */
void *runner(void *param);
int main(int argc, char *argv[]){
   pthread t tid; /* the thread identifier */
   /* set of thread attributes */
   pthread attr t attr;
   if (argc != 2){
      fprintf(stderr,"usage: a.out \n");
      return -1;
   }
   if (atoi(argv[1]) < 0){
      fprintf(stderr,"%d must be >= 0\n",atoi(argv[1]));
      return -1;
   }
   /* get the default attributes */
   pthread attr init(&attr); /* create the thread */
   pthread create(&tid,&attr,runner,argv[1]);
   /* wait for the thread to exit */
   pthread join(tid,NULL);
   printf("sum = %d\n",sum);
}
/* The thread will now begin control in this function */
void *runner(void *param){
   int i, upper = atoi(param);
   sum = 0;
   for (i = 1; i <= upper; i++)
      sum += i;
   pthread exit(0);
}

Pthreads API ব্যবহার করে মাল্টিথ্রেডেড সি প্রোগ্রাম।


  1. C# এ থ্রেড

  2. একটি সহজ থ্রেড তৈরি করতে C# প্রোগ্রাম

  3. একটি থ্রেড হত্যা করার জন্য C# প্রোগ্রাম

  4. জাভাতে থ্রেড পুল