ম্যুটক্স এবং ইভেন্টের মধ্যে পার্থক্য

Anonim

মুঠস বনাম ইভেন্ট

সি # তে, বিভিন্ন থ্রেডিং সিঙ্ক্রোনাইজেশন অপশন রয়েছে। আরো ব্যাপকভাবে ব্যবহৃত দুটি mutex এবং ঘটনা। ঠিক এই দুটি মধ্যে পার্থক্য ঠিক কি? কোনটি ভাল বিকল্প?

ঘটনাটি বিকল্প থ্রেডকে ব্লক করার বিকল্প দিতে সক্ষম হয় না যতক্ষণ কোন ইভেন্টটি সম্প্রচারিত হয় "নাম" ইভেন্ট "এটা ঘুম কিছু নির্বাণ হিসাবে একই এবং তাত্পর্য কিছু ঘটে যখন শুধুমাত্র এটি জাগ্রত। ইভেন্টগুলি mutexes এর মত নয় কারণ mutexes এর সিগন্যালিং বিকল্প বা ফাংশন নেই। ঘটনাটি সিগন্যালটি পরিষ্কার করতে সক্ষম হয়েছে, যে কেউ এটি অপেক্ষা করতে সক্ষম হয়েছেন। এমনকি এক বা একাধিক সমস্ত ইভেন্ট সিগন্যাল না হওয়া পর্যন্ত এপিআই বন্ধ করার বিকল্পটি সক্ষম করতে সক্ষম। উপরন্তু, ইভেন্টগুলি কার্নেল অবজেক্টগুলি। তারা mutexes তুলনায় "লাইটার" হয় না। একটি ঘটনা মূলত দুটি রাজ্যের একটি কার্নেল বস্তু। সাধারণত, একটি ইভেন্ট একটি ইভেন্ট আসছে এবং কখনও কখনও এমনকি একটি I / O অপারেশন শেষ।

"মিউটক্স" মিউচুয়াল বিভাজনের জন্য ব্যবহৃত। এটা ভাগ করা হয় যে সম্পদ জন্য scoped সমন্বয় প্রক্রিয়া একটি ফর্ম। এটি লেনদেনের একটি ফর্ম হিসাবে চিন্তা করুন। আপনি কিছু ভাগ সম্পদ (শুধুমাত্র অন্য যে ইতিমধ্যে এটি অ্যাক্সেস করছেন) আপনি ব্লক করা হয় অ্যাক্সেস করতে চান, যদিও আপনি অপেক্ষা করতে বাধ্য করা হয় না। একটি mutex দুটি রাজ্যের গঠিত যদিও এটা একটি পারস্পরিক বর্জন কার্যকর করা বিদ্যমান। এটি যখন আপনি একটি প্রসারিত কোড রক্ষা করতে চান, যা সাধারণত ভাগ করে নেওয়া ভাগ করে নেওয়া সম্পদকে ভাগ করে নেয় যেখানে মিটক্সের অংশটি প্রকাশ করা হবে। এই যে অন্য কোন থ্রেড অধ্যায় মাধ্যমে পাস করতে পারেন যে বাড়ে।

যেসব লোক একটি ম্যুটক্সের সাহায্যে ঘটনাকে অনুকরণ করার চেষ্টা করেছে তাদের সমস্যাটি ঘটেছে যার ফলে লক অর্জিত হয়ে গেছে বা ঘটনাটি সন্নিবেশিত হয়েছে, ব্যক্তিটি অন্য সবাইকে রক্ষা করছে লক মুক্তি না হওয়া পর্যন্ত এটি কোনও ইভেন্টের সিমান্তিক নয় যা সিগন্যাল করা হয়। একটি ইভেন্ট পোস্ট থাকতে পারে এবং কোনও লক নেই এমন ইভেন্টে সমস্ত থ্রেড পরীক্ষার জন্য গেটের একটি ফর্ম পাওয়া যাবে। কার্নেল-মোড বস্তুতে সিঙ্ক্রোনাইজেশনের আন্তঃপ্রক্রিয়া করার জন্য নিঃশব্দ তৈরি করা হয়েছে। একটি পদ্ধতির অধীনে multithreaded সিঙ্ক্রোনাইজ জন্য তৈরি ইভেন্ট ব্যবহারকারী মোড বস্তু মধ্যে।

মাইটক্স বস্তু খুব ভারী এবং খুব সাধারণ। ইভেন্ট বস্তুগুলি অনেক হালকা। বেশিরভাগ পরিস্থিতিতে ইউজার-মোড সিঙ্ক্রোনাইজেশনটি ব্যবহার করা হয় কারণ এটি কম CPU চক্র দেয়। Mutex অত্যন্ত একটি গুরুত্বপূর্ণ বিভাগের মতো এবং ভাগ করা সম্পদগুলির অ্যাক্সেসকে সিঙ্ক্রোনাইজ করতে ব্যবহৃত হয়। ঘটনাগুলি একটি সম্পূর্ণ ভিন্ন ফাংশন আছে কারণ তারা কিছু লোকের জন্য টাস্ক নির্ধারণের কাজগুলি সমন্বয় করার জন্য বা পরিচালনার জন্য ব্যবহার করা হয়।

ইভেন্টগুলি আরও একটি শর্ত ভেরিয়েবল যা মটোক্সের মত নয়, যা আরো কয়েকটি পরিভাষা

মনিটরের মত, অথবা এটি স্যামফরা / মিউটক্সের প্রথাগত রূপ হতে পারে।

সংক্ষিপ্ত বিবরণ:

1 ঘটনা বিকল্প থ্রেড একটি ইভেন্ট সম্প্রচার পর্যন্ত পর্যন্ত ব্লক বিকল্প দিতে সক্ষম, এইভাবে নাম "ইভেন্ট। "

2। একটি ঘটনা মূলত দুটি রাজ্যের একটি কার্নেল বস্তু। সাধারণত, একটি ইভেন্ট একটি ইভেন্ট আসছে এবং কখনও কখনও এমনকি একটি I / O অপারেশন শেষ।

3। "Mutex" মিউচ্যুয়াল বর্ননের জন্য ব্যবহৃত। এটা ভাগ করা হয় যে সম্পদ জন্য scoped সমন্বয় প্রক্রিয়া একটি ফর্ম।

4। কার্নেল-মোড বস্তুতে সিঙ্ক্রোনাইজেশনের আন্তঃপ্রক্রিয়া করার জন্য নিঃশব্দ তৈরি করা হয়েছে। একটি পদ্ধতির অধীনে multithreaded সিঙ্ক্রোনাইজ জন্য তৈরি ইভেন্ট ব্যবহারকারী মোড বস্তু মধ্যে।

5। ইভেন্টগুলি আরও একটি শর্তের পরিবর্তনশীল, যা মটোক্সের মত নয়, যা আরো কয়েকটি পরিভাষা

নিরীক্ষণের মতো, অথবা এটি স্যামফোরা / ম্যুটক্সের একটি প্রথাগত রূপ হতে পারে।