কম্পিউটার

সি-তে একটি প্রক্রিয়ার মধ্যে সর্বাধিক সংখ্যক থ্রেড তৈরি করা যেতে পারে


দেওয়া টাস্ক হল সর্বাধিক সংখ্যক থ্রেড খুঁজে বের করা যা একটি প্রক্রিয়ার মধ্যে তৈরি করা যেতে পারে।

একটি থ্রেড হালকা ওজনের প্রক্রিয়া এবং স্বাধীনভাবে সময়সূচী দ্বারা পরিচালিত হতে পারে। যেহেতু থ্রেড একটি প্রক্রিয়ার একটি উপাদান, তাই একাধিক সংখ্যক থ্রেড এপ্রোসেসে যুক্ত করা যেতে পারে এবং প্রসঙ্গ পরিবর্তনের জন্য এটি কম সময় নেয় কারণ এটি প্রক্রিয়াটির চেয়ে হালকা।

থ্রেডগুলির প্রক্রিয়াগুলির তুলনায় কম সংস্থান প্রয়োজন এবং তারা এর পিয়ারথ্রেডগুলির সাথে মেমরি ভাগ করে নেয়। অপারেটিং সিস্টেম দ্বারা সমস্ত ব্যবহারকারী স্তরের পিয়ার থ্রেডগুলিকে একক কাজ হিসাবে বিবেচনা করা হয়। তাদের সৃষ্টির পাশাপাশি সমাপ্তির জন্য কম সময় প্রয়োজন।

প্রতিবার প্রোগ্রামটি চালানোর সময় আউটপুট সর্বদা ভিন্ন হবে।

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • ফাংশন void* create(void *) তৈরি করুন এবং এটি খালি রাখুন কারণ এটি শুধুমাত্র থ্রেডের কাজ প্রদর্শন করে।

  • main() ফাংশনে দুটি ভেরিয়েবল max =0 এবং ret =0 উভয় প্রকার int টাইপ করে যাতে যথাক্রমে সর্বাধিক সংখ্যক থ্রেড এবং রিটার্ন মান সংরক্ষণ করা যায়।

  • pthread_t টাইপের একটি পরিবর্তনশীল “th” ঘোষণা করুন।

  • কন্ডিশন ret ==0 সহ একটি while লুপ চালান এবং ret =pthread_create (&th,NULL, create, NULL);

  • লুপের ভিতরে সর্বোচ্চ++ পুনরাবৃত্তি করুন।

  • লুপের বাইরে সর্বাধিক প্রিন্ট করুন।

উদাহরণ

#include<pthread.h>
#include<stdio.h>
/*Leave the function empty as it
only demonstrates work of thread*/
void *create ( void *){
}
//main function
int main(){
   int max = 0, ret = 0;
   pthread_t th;
   //Iterate until 0 is returned
   while (ret == 0){
      ret = pthread_create (&th, NULL, create, NULL);
      max++;
   }
   printf(" %d ", max);
}

আউটপুট

5741

  1. সর্বাধিক সংখ্যা যা C++ এ N সেগমেন্ট ব্যবহার করে সেভেন সেগমেন্ট ডিসপ্লেতে প্রদর্শিত হতে পারে

  2. সর্বাধিক সংখ্যক Zombie প্রসেস একটি সিস্টেম C++ এ পরিচালনা করতে পারে

  3. সর্বাধিক বিশপ যা C++ এ N*N চেসবোর্ডে স্থাপন করা যেতে পারে

  4. C++ এ সমকোণ সমদ্বিবাহু ত্রিভুজে ফিট হতে পারে এমন সর্বাধিক সংখ্যক বর্গক্ষেত্র