তাত্পর্যপূর্ণ জাগানোগুলির টিএল; ডিআর অ্যাস্পশন ("চুক্তি") হ'ল থ্রেড শ্যাডুলারের বাস্তবিকভাবে দৃ rob় বাস্তবায়নের অনুমতি দেওয়ার জন্য করা একটি বুদ্ধিমান স্থিতিশীল সিদ্ধান্ত।
"পারফরম্যান্স বিবেচনা" এখানে অপ্রাসঙ্গিক, এগুলি কেবলমাত্র ভুল বোঝাবুঝি যা প্রকাশিত অনুমোদনের উল্লেখে উল্লেখ করার কারণে ব্যাপক আকার ধারণ করেছিল। (অনুমোদিত রেফারেন্সে ত্রুটি থাকতে পারে, আপনি জানেন - কেবল গ্যালিলিও গ্যালিলিকে জিজ্ঞাসা করুন ) উইকিপিডিয়া নিবন্ধটি আপনার উদ্ধৃত নোটের রেফারেন্সটি ঠিক রাখে কারণ এটি প্রকাশিত রেফারেন্সের উদ্ধৃতি দেওয়ার তাদের আনুষ্ঠানিক নির্দেশিকাগুলির সাথে পুরোপুরি মেলে।
উত্সাহী জাগ্রতগুলির ধারণা প্রবর্তনের আরও অনেক জোরালো কারণ এই উত্তরে এসও- তে এই উত্তরটিতে সরবরাহ করা হয়েছে যা সেই নিবন্ধের একটি (পুরানো সংস্করণ) সরবরাহিত অতিরিক্ত বিবরণের উপর ভিত্তি করে:
উত্সাহী জাগরণের বিষয়ে উইকিপিডিয়া নিবন্ধটিতে এই বিবরণটি রয়েছে:
pthread_cond_wait()
Linux এ ফাংশন ব্যবহার করে বাস্তবায়িত হয় futex
সিস্টেম কল। EINTR
প্রক্রিয়াটি সংকেত পেলে লিনাক্সের প্রতিটি ব্লকিং সিস্টেম কল হঠাৎ করে ফিরে আসে । ... pthread_cond_wait()
অপেক্ষার পুনরায় আরম্ভ করতে পারবেন না কারণ এটি futex
সিস্টেম কলের বাইরে খুব অল্প সময়েই সত্যিকারের জাগানো অনুভব করতে পারে ...
কেবল এটিকে ভাবুন ... যে কোনও কোডের মতো, থ্রেড শিডিয়ুলার অন্তর্নিহিত হার্ডওয়্যার / সফ্টওয়্যারটিতে অস্বাভাবিক কিছু ঘটার কারণে অস্থায়ী ব্ল্যাকআউট অনুভব করতে পারে। অবশ্যই এটি যথাসম্ভব বিরল হওয়ার জন্য যত্ন নেওয়া উচিত, তবে যেহেতু 100% মজবুত সফ্টওয়্যার বলে কিছু নেই তাই এটি ঘটতে পারে বলে ধরে নেওয়া যুক্তিসঙ্গত এবং যদি শিডিয়ুলার এটি সনাক্ত করে তবে ক্ষেত্রে সুদৃ recovery় পুনরুদ্ধারের যত্ন নেওয়া উচিত eg অনুপস্থিত হার্টবিট পর্যবেক্ষণ করে )।
এখন, শিডিউলার কীভাবে পুনরুদ্ধার করতে পারে তা বিবেচনায় নিয়ে যে ব্ল্যাকআউট চলাকালীন এটি অপেক্ষা থ্রেডগুলি অবহিত করার উদ্দেশ্যে কিছু সংকেত মিস করতে পারে? শিডিউলার যদি কিছু না করে তবে উল্লিখিত "দুর্ভাগ্য" থ্রেডগুলি কেবল স্থায়ী হয়ে থাকবে, চিরকাল অপেক্ষা করা হবে - এড়াতে, শিডিয়ুলার কেবলমাত্র সমস্ত অপেক্ষার থ্রেডে একটি সংকেত পাঠাত send
এটি একটি "চুক্তি" স্থাপন করা প্রয়োজনীয় করে তোলে যে অপেক্ষার থ্রেডটি কারণ ছাড়াই অবহিত করা যেতে পারে। সুনির্দিষ্টভাবে বলতে গেলে, কারণগুলির একটি কারণ থাকতে পারে - শিডিয়ুলার ব্ল্যাকআউট - তবে যেহেতু থ্রেডটি নকশা করা হয়েছে (একটি ভাল কারণের জন্য) অভ্যন্তরীণ বাস্তবায়নের বিশদ নির্ধারণের সময়সূচীটি সম্পর্কে অসচেতন হতে এই কারণটি সম্ভবত "উত্সাহী" হিসাবে উপস্থাপন করা আরও ভাল।
থ্রেড দৃষ্টিকোণ থেকে, এটি কিছুটা পোস্টেলের আইনের সাথে সাদৃশ্যপূর্ণ (ওরফে দৃ rob ়তা নীতি ),
আপনি যা করেন তাতে রক্ষণশীল হন, আপনি অন্যের কাছ থেকে যা গ্রহণ করেন তাতে উদার হন
উদ্দীপনা জাগ্রত গ্রহণের ফলে থ্রেডটি এটির ক্ষেত্রে রক্ষণশীল হতে বাধ্য করে : অন্যান্য থ্রেডকে অবহিত করার সময় শর্ত নির্ধারণ করুন এবং এটি যেভাবে গ্রহণ করবে তাতে উদার : অপেক্ষা থেকে কোনও প্রত্যাবর্তনের পরে শর্তটি পরীক্ষা করুন এবং এটি এখনও না থাকলে অপেক্ষা অপেক্ষা পুনরাবৃত্তি করুন।