কম্পিউটার

C# এ থ্রেড সেফ কনকারেন্ট কালেকশন


.NET ফ্রেমওয়ার্ক 4 এনেছে System.Collections.Concurrent namespace. এটিতে বেশ কয়েকটি সংগ্রহের ক্লাস রয়েছে যা থ্রেড-নিরাপদ এবং মাপযোগ্য। এই সংগ্রহগুলিকে সমসাময়িক সংগ্রহ বলা হয় কারণ সেগুলি এক সময়ে একাধিক থ্রেড দ্বারা অ্যাক্সেস করা যায়৷

নিম্নলিখিতগুলি C# −

-এ সমসাময়িক সংগ্রহ রয়েছে
Sr. No প্রকার ও বর্ণনা
1 ব্লকিং কালেকশন
যেকোন প্রকারের জন্য বাউন্ডিং এবং ব্লকিং কার্যকারিতা।
2 সমসাময়িক অভিধান
মূল-মান জোড়ার একটি অভিধানের থ্রেড-নিরাপদ বাস্তবায়ন।
3 সমসাময়িক সারি
একটি FIFO (প্রথম-ইন, প্রথম-আউট) সারির থ্রেড-নিরাপদ বাস্তবায়ন।
4 ConcurrentStack
একটি LIFO (শেষ-ইন, প্রথম-আউট) স্ট্যাকের থ্রেড-নিরাপদ বাস্তবায়ন।
5 সমসাময়িক ব্যাগ
থ্রেড-সুরক্ষিত উপাদানের একটি অশৃঙ্খল সংগ্রহের বাস্তবায়ন।
6 IPproducerConsumer Collection
একটি ব্লকিং কালেকশনে ব্যবহার করার জন্য একটি টাইপকে অবশ্যই প্রয়োগ করতে হবে এমন ইন্টারফেস

আসুন দেখি কিভাবে ConcurrentStack এর সাথে কাজ করা যায় যা একটি থ্রেড-সেফ লাস্ট ইন-ফার্স্ট আউট (LIFO) সংগ্রহ।

একটি সমবর্তী স্ট্যাক তৈরি করুন।

ConcurrentStack<int> s = new ConcurrentStack<int>();

উপাদান যোগ করুন

s.Push(1);
s.Push(2);
s.Push(3);
s.Push(4);
s.Push(5);
s.Push(6);

আসুন একটি উদাহরণ দেখি

উদাহরণ

using System;
using System.Collections.Concurrent;

class Demo{
   static void Main (){
      ConcurrentStack s = new ConcurrentStack();

      s.Push(50);
      s.Push(100);
      s.Push(150);
      s.Push(200);
      s.Push(250);
      s.Push(300);

      if (s.IsEmpty){
         Console.WriteLine("The stack is empty!");
      }

      else {
         Console.WriteLine("The stack isn't empty");
      }
   }
}

  1. জাভা ম্যাচার থ্রেড কি জাভাতে নিরাপদ?

  2. জাভাতে ব্যর্থ-দ্রুত এবং ব্যর্থ নিরাপদের মধ্যে পার্থক্য

  3. জাভাতে একটি সংগ্রহের থ্রেড কীভাবে নিরাপদ করবেন?

  4. আপনি কি মনে করেন একটি পাইথন অভিধান থ্রেড নিরাপদ?