কম্পিউটার

গ্র্যান্ড সেন্ট্রাল ডিসপ্যাচ (GCD)


গ্র্যান্ড সেন্ট্রাল ডিসপ্যাচ (জিসিডি) - অ্যাপলের ম্যাক ওএস এক্স এবং আইওএস অপারেটিং সিস্টেমের জন্য একটি প্রযুক্তি- হল সি ল্যাঙ্গুয়েজ, একটি এপিআই এবং একটি রান-টাইম লাইব্রেরির এক্সটেনশনের সংমিশ্রণ যা অ্যাপ্লিকেশন ডেভেলপারদের কোডের অংশগুলি শনাক্ত করতে দেয় সমান্তরাল OpenMP-এর মতো, GCD থ্রেডিংয়ের বেশিরভাগ বিবরণ পরিচালনা করে। GCD ব্লক হিসাবে পরিচিত C এবং C++ ভাষার এক্সটেনশন সনাক্ত করে। একটি ব্লক হল কাজের একটি স্বয়ংসম্পূর্ণ ইউনিট। এটি একটি ক্যারেট দ্বারা সুনির্দিষ্ট করা হয় একটি জোড়া ধনুর্বন্ধনীর সামনে ঢোকানো { }৷ একটি ব্লকের একটি সাধারণ উদাহরণ নীচে &মাইনাস;

দেখানো হয়েছে
{
   ˆprintf("This is a block");
}

এটি একটি ডিসপ্যাচ সারিতে রেখে রান-টাইম এক্সিকিউশনের জন্য ব্লক নির্ধারণ করে। যখন এটি একটি সারি থেকে একটি ব্লক অপসারণ করে, এটি থ্রেড পুল থেকে এটি পরিচালনা করে এমন একটি উপলভ্য থ্রেডে ব্লকটি বরাদ্দ করে। GCD দুই ধরনের প্রেরণ সারি চিহ্নিত করে:সিরিয়াল এবং সমসাময়িক। ক্রমিক সারিতে স্থাপন করা ব্লকগুলি ফিফো ক্রমানুসারে সরানো হয়। একবার একটি ব্লক সারি থেকে সরানো হলে, অন্য ব্লক অপসারণের আগে এটি কার্যকর করা সম্পূর্ণ করতে হবে। প্রতিটি প্রক্রিয়ার নিজস্ব সিরিয়াল সারি রয়েছে (প্রধান সারি হিসাবে পরিচিত)। বিকাশকারীরা অতিরিক্ত সিরিয়াল সারি তৈরি করতে পারে যা নির্দিষ্ট প্রক্রিয়ার জন্য স্থানীয়। ক্রমিক সারিগুলি বেশ কয়েকটি কাজের ক্রমিক সম্পাদন নিশ্চিত করার জন্য কার্যকর। একযোগে সারিতে স্থাপন করা ব্লকগুলিও FIFO ক্রমে সরানো হয়, তবে একাধিক ব্লক একই সময়ে সরানো যেতে পারে, এইভাবে একাধিক ব্লক সমান্তরালভাবে চালানোর অনুমতি দেয়। তিনটি সিস্টেম-ওয়াইড সমসাময়িক প্রেরণ সারি আছে, এবং সেগুলি অগ্রাধিকার অনুযায়ী আলাদা করা হয়:নিম্ন, ডিফল্ট এবং উচ্চ। অগ্রাধিকারগুলি ব্লকের আপেক্ষিক গুরুত্বের একটি আনুমানিক প্রতিনিধিত্ব করে। খুব সহজভাবে, উচ্চ অগ্রাধিকার সহ ব্লকগুলি উচ্চ অগ্রাধিকার প্রেরণের সারিতে স্থাপন করা উচিত। নিম্নলিখিত কোড সেগমেন্টটি ডিফল্ট-অগ্রাধিকার সমসাময়িক সারি প্রাপ্ত করা এবং ডিসপ্যাচ async() ফাংশন ব্যবহার করে সারিতে একটি ব্লক জমা দেওয়ার চিত্র তুলে ধরে −

dispatch_queue_t queue = dispatch_get_global_queue
(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch async(queue, ˆ{ printf("This is a block."); });

অভ্যন্তরীণভাবে, GCD এর থ্রেড পুল POSIX থ্রেড দিয়ে গঠিত। GCD সক্রিয়ভাবে পুল পরিচালনা করে, যাতে থ্রেডের সংখ্যা বাড়তে এবং অ্যাপ্লিকেশনের চাহিদা এবং সিস্টেমের ক্ষমতা অনুযায়ী সঙ্কুচিত হতে পারে।


  1. জাভাস্ক্রিপ্টে সারির ডেটা স্ট্রাকচার

  2. জাভাস্ক্রিপ্টে ব্লক স্কোপিং।

  3. জাভাস্ক্রিপ্টে সারির বাস্তবায়ন

  4. কনকারেন্সি ব্যাখ্যা করা হয়েছে:কীভাবে একটি মাল্টি-থ্রেডেড iOS অ্যাপ তৈরি করবেন