কেন Pthread_cond_wait একটি mutex প্রয়োজন?
কেন Pthread_cond_wait একটি mutex প্রয়োজন?

ভিডিও: কেন Pthread_cond_wait একটি mutex প্রয়োজন?

ভিডিও: কেন Pthread_cond_wait একটি mutex প্রয়োজন?
ভিডিও: সি-তে মিউটেক্স কী? (pthread_mutex) 2024, মে
Anonim

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

এই বিষয়ে, Pthread_cond_wait কি মুটেক্স আনলক করে?

দ্য pthread_cond_wait () ফাংশন কন্ডিশন ভেরিয়েবল কনডের কলিং থ্রেডকে ব্লক করে, এবং আনলক সংশ্লিষ্ট মিউটেক্স মিউটেক্স . কলিং থ্রেড অবশ্যই লক করা আছে মিউটেক্স শর্ত পরিবর্তনশীল উপর অপেক্ষা করার আগে. ফাংশন থেকে ফিরে, মিউটেক্স আবার লক করা এবং কলিং থ্রেডের মালিকানাধীন।

পরবর্তীকালে, প্রশ্ন হল, কেন mutex প্রয়োজন? এটি নিশ্চিত করে যে শুধুমাত্র একটি থ্রেড একটি সময়ে কোডের একটি মূল অংশ নির্বাহ করছে, যা একটি ডেটা কাঠামোর অ্যাক্সেসকে সীমিত করে। এটি নিশ্চিত করে যে উভয় থ্রেডের কোনো CPU পুনর্বিন্যাস নির্বিশেষে সেই মেমরির সম্পূর্ণ এবং সঠিক দৃষ্টিভঙ্গি রয়েছে। দ্য মিউটেক্স সমসাময়িক প্রোগ্রামিং করার সময় এটি একটি পরম প্রয়োজনীয়তা।

উপরের পাশে, কেন কন্ডিশন ভেরিয়েবলের mutex দরকার?

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

কেন আমরা শর্ত ভেরিয়েবল প্রয়োজন?

কন্ডিশন ভেরিয়েবল সুড়সুড়ির একটি সেট সুড়সুড়ি না হওয়া পর্যন্ত ঘুমাতে দিন! আপনি একটি থ্রেড বা ঘুমন্ত সব থ্রেড সুড়সুড়ি করতে পারেন. আপনি যদি শুধুমাত্র একটি থ্রেড জাগিয়ে দেন তাহলে অপারেটিং সিস্টেম সিদ্ধান্ত নেবে কোন থ্রেডটি জাগবে।

প্রস্তাবিত: