এটি আপনার ভাবার চেয়ে সহজ।
মাইক্রোসফ্টের মতে : lock
মূলশব্দটি নিশ্চিত করে যে একটি থ্রেড কোডের একটি গুরুত্বপূর্ণ বিভাগে প্রবেশ করবে না এবং অন্য থ্রেড সমালোচনামূলক বিভাগে রয়েছে। যদি অন্য থ্রেড কোনও লকড কোড প্রবেশ করানোর চেষ্টা করে তবে অবজেক্টটি প্রকাশ না হওয়া পর্যন্ত এটি অপেক্ষা করবে, অবরুদ্ধ করবে।
lock
শব্দ কল Enter
ব্লক শুরুতে এবং Exit
ব্লক শেষে। lock
কীওয়ার্ডটি আসলে Monitor
শেষ প্রান্তে ক্লাস পরিচালনা করে ।
উদাহরণ স্বরূপ:
private static readonly Object obj = new Object();
lock (obj)
{
// critical section
}
উপরের কোডে, প্রথমে থ্রেডটি একটি গুরুত্বপূর্ণ বিভাগে প্রবেশ করে এবং তারপরে এটি লক হয়ে যাবে obj
। যখন অন্য কোনও থ্রেড প্রবেশ করার চেষ্টা করবে, এটি লক করার চেষ্টা করবে obj
, যা ইতিমধ্যে প্রথম থ্রেড দ্বারা লক করা আছে। দ্বিতীয় থ্রেডটি প্রকাশের জন্য প্রথম থ্রেডের জন্য অপেক্ষা করতে হবে obj
। যখন প্রথম থ্রেড ছেড়ে যায়, তখন অন্য থ্রেডটি লক হয়ে যায় obj
এবং সমালোচনামূলক বিভাগে প্রবেশ করবে।