সংক্ষিপ্ত সারাংশ:
Semaphoreএবং CountDownLatchবিভিন্ন উদ্দেশ্যে কাজ করে।
Semaphoreরিসোর্সে থ্রেড অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহার করুন ।
CountDownLatchসমস্ত থ্রেড সমাপ্তির জন্য অপেক্ষা করতে ব্যবহার করুন
Semaphore জাভাডোকস থেকে সংজ্ঞা:
একটি Semaphoreঅনুমতিপত্রের একটি সেট বজায় রাখে। পারমিট না পাওয়া acquire()পর্যন্ত প্রতিটি ব্লক প্রয়োজনীয় হয় এবং তারপরে এটি গ্রহণ করে। প্রত্যেকে সম্ভাব্যভাবে একটি ব্লককারী অর্জনকারীকে মুক্তি দিয়ে একটি অনুমতি যুক্ত করে।release()
তবে, কোনও আসল অনুমতি বস্তু ব্যবহার করা হয় না; Semaphoreশুধু গণনা প্রাপ্তিসাধ্য রাখে এবং সেই অনুযায়ী কাজ করে।
এটা কিভাবে কাজ করে?
সেমোফোর্সগুলি রিসোর্স ব্যবহার করে এমন সমবর্তী থ্রেডগুলির সংখ্যা নিয়ন্ত্রণ করতে ব্যবহৃত হয় hat এই সংস্থানটি কোনও শেয়ারড ডেটা বা কোডের একটি ব্লক ( সমালোচনামূলক বিভাগ ) বা কোনও ফাইলের মতো হতে পারে।
একটি উপর গণনা Semaphoreপর্যন্ত যেতে এবং নিচে বিভিন্ন থ্রেড কল হিসাবে পারেন acquire()এবং release()। তবে যে কোনও সময়, আপনার কাছে সেমফোর কাউন্টের চেয়ে বেশি সংখ্যক থ্রেড থাকতে পারে না।
Semaphore ব্যবহারের ক্ষেত্রে:
- ডিস্কে একযোগে অ্যাক্সেস সীমাবদ্ধ করা (প্রতিযোগী ডিস্কের সন্ধানের কারণে এটি পারফরম্যান্সকে হত্যা করতে পারে)
- থ্রেড তৈরির সীমাবদ্ধ
- জেডিবিসি সংযোগ পুলিং / সীমাবদ্ধ
- নেটওয়ার্ক সংযোগ থ্রোটলিং
- থ্রোটলিং সিপিইউ বা মেমরি নিবিড় কাজগুলি
Semaphore ব্যবহারের জন্য এই নিবন্ধটি দেখুন ।
CountDownLatch জাভাডোকস থেকে সংজ্ঞা:
একটি সিঙ্ক্রোনাইজেশন সহায়তা যা অন্য থ্রেডে পরিচালিত ক্রিয়াকলাপের সেট সম্পূর্ণ না হওয়া পর্যন্ত এক বা একাধিক থ্রেড অপেক্ষা করতে দেয় allows
এটা কিভাবে কাজ করে?
CountDownLatchএকটি কাউন্টার দিয়ে থ্রেড সংখ্যার সাথে ইনিশিয়েলড হয়ে কাজ করে, যা প্রতিবার একটি থ্রেডের সম্পাদন সম্পন্ন করার পরে হ্রাস হয়। যখন গণনা শূন্যে পৌঁছে যায়, এর অর্থ সমস্ত থ্রেডগুলি তাদের সম্পাদন সম্পন্ন করে, এবং ল্যাডের অপেক্ষায় থাকা থ্রেড কার্যকর করে আবার শুরু করে।
CountDownLatch ব্যবহারের ক্ষেত্রে:
- সর্বাধিক সমান্তরালতা অর্জন: কখনও কখনও আমরা সর্বাধিক সমান্তরালতা অর্জন করতে একই সাথে কয়েকটি থ্রেড শুরু করতে চাই
- সম্পাদনা শুরুর আগে এন থ্রেডগুলি সম্পূর্ণ করতে অপেক্ষা করুন
- ডেডলক সনাক্তকরণ।
পরিষ্কারভাবে ধারণাগুলি বুঝতে এই নিবন্ধটি দেখুন CountDownLatch।
এই নিবন্ধটিতেও ফোর্ক জয়েন পুলটিতে একবার দেখুন । এর কিছু মিল রয়েছে ।CountDownLatch