विकिपीडिया के अनुसार,
साझा ताले को कभी-कभी "रीड लॉक" कहा जाता है और अनन्य ताले को कभी-कभी "राइट लॉक" कहा जाता है।
क्या आप "साझा" और "अनन्य" शब्दों के पीछे के तर्क की व्याख्या कर सकते हैं?
विकिपीडिया के अनुसार,
साझा ताले को कभी-कभी "रीड लॉक" कहा जाता है और अनन्य ताले को कभी-कभी "राइट लॉक" कहा जाता है।
क्या आप "साझा" और "अनन्य" शब्दों के पीछे के तर्क की व्याख्या कर सकते हैं?
जवाबों:
मैंने इसका उत्तर नीचे लिखा क्योंकि मुझे लगा कि यह एक मजेदार (और फिटिंग) सादृश्य होगा:
एक शिक्षक (लेखक) और कई छात्रों (पाठकों) से युक्त क्लास रूम में एक ब्लैकबोर्ड (लॉक करने योग्य) के रूप में एक लॉक करने योग्य वस्तु के बारे में सोचें ।
जबकि एक शिक्षक बोर्ड पर कुछ (अनन्य ताला) लिख रहा है:
कोई भी इसे पढ़ नहीं सकता है, क्योंकि यह अभी भी लिखा जा रहा है, और वह आपके विचार को अवरुद्ध कर रहा है => यदि कोई वस्तु विशेष रूप से बंद है, तो साझा ताले प्राप्त नहीं किए जा सकते हैं ।
अन्य शिक्षक सामने नहीं आएंगे और या तो लिखना शुरू कर देंगे, या बोर्ड अपठनीय हो जाएगा, और छात्रों को भ्रमित करता है => यदि कोई वस्तु विशेष रूप से बंद है, तो अन्य अनन्य ताले प्राप्त नहीं किए जा सकते हैं ।
जब छात्र पढ़ रहे हैं (ताले साझा किए गए हैं) बोर्ड पर क्या है:
वे सभी पढ़ सकते हैं कि इस पर क्या है, एक साथ => कई साझा ताले सह-अस्तित्व में हो सकते हैं ।
शिक्षिका उनके पढ़ने का समापन करने से पहले इंतजार करती है कि बोर्ड को और अधिक लिखने के लिए = = यदि एक या अधिक साझा ताले पहले से मौजूद हैं, तो अनन्य ताले प्राप्त नहीं किए जा सकते ।
lock()
कॉल पहला तुरंत और सफलतापूर्वक वापस आ जाएगा। यानी आप अपने द्वारा पहले से ही कुछ को सफलतापूर्वक लॉक कर सकते हैं।
writer
वेटिंग रीडर्स पर एक वेटिंग को प्राथमिकता दी जाती है जब लॉक चुनता है कि लॉक को अगला कौन मिलता है (जब वह अपने वर्तमान मालिक द्वारा अनलॉक किया जाता है)। यह नीति के बारे में है ।
यह बहुत सीधा है। पढ़ें ताले को साझा ताले के रूप में भी जाना जाता है क्योंकि एक ही समय में एक से अधिक प्रक्रिया पढ़ सकते हैं। रीड लॉक का बिंदु एक अन्य प्रक्रिया द्वारा राइट लॉक के अधिग्रहण को रोकना है। इसके विपरीत, एक लेखन लॉक अन्य सभी कार्यों को रोकता है जबकि एक लिखित ऑपरेशन पूरा होता है, यही कारण है कि इसे अनन्य रूप में वर्णित किया गया है।
तो एक रीड लॉक कहता है "आप अभी पढ़ सकते हैं लेकिन अगर आप लिखना चाहते हैं तो आपको इंतजार करना होगा" जबकि एक राइट लॉक कहता है "आपको इंतजार करना होगा"।
मुझे लगता है कि आप अपनी पढ़ाई के समर्थन में शोध कर रहे हैं, लेकिन मैं व्याख्यान देने का आग्रह नहीं कर सकता।
लॉकिंग का अक्षम उपयोग प्रदर्शन सिरदर्द का एक प्राथमिक कारण है। एक लॉकिंग सिस्टम का उपयोग जो लॉक को पढ़ता और लिखता है, एक अच्छी शुरुआत है, लेकिन सावधानीपूर्वक डिजाइन कभी-कभी लॉक करने की आवश्यकता को समाप्त कर सकता है। उदाहरण के लिए, सत्र राज्य को प्रति तत्व एक वैश्विक संग्रह में कभी नहीं रखा जाना चाहिए ।
मैंने वास्तव में ऐसा करते देखा है। यह एक अत्याचारी डिजाइन है, जिससे बॉक्सिंग और सत्र राज्य में हर अंतिम परिवर्तन के लिए एक संग्रह में बदलाव होता है, जो एक लम्बी राइट लॉक को बढ़ाता है। ओवरहेड्स अपंग थे, प्रभावी रूप से सर्वर को एकल थ्रेडेड व्यवहार को कम कर रहे थे।
बस सभी सत्र राज्य को एक संरचना में संयोजित करना एक बहुत बड़ा सुधार था। सत्र राज्य में परिवर्तन ने केवल एक सत्र के राज्य संरचना के सदस्यों के मूल्यों को बदल दिया। चूंकि किसी अन्य सत्र में किसी सत्र की स्थिति को सीधे संदर्भित करने का अवसर या अवसर नहीं था, इसलिए अद्यतन किया जा रहा एकमात्र संग्रह सत्रों की सूची था। नतीजतन, एक शुरुआत के दौरान लॉकिंग पूरी तरह से अनावश्यक थी , केवल शुरुआत और अंत में, और थ्रूपुट 3000 के एक कारक द्वारा गुलाब।
अन्य सामान्य लॉकिंग परिदृश्य एक उपयोगकर्ता अनुप्रयोग के थ्रेड्स के बीच साझा किए गए संसाधन हैं। अधिकांश आधुनिक चौखटे ताले के बजाय संदेशों का उपयोग करके इसे संबोधित करते हैं; जब आप "UI थ्रेड में संक्रमण" करते हैं, तो आप वास्तव में एक फ़ंक्शन पॉइंटर और कुछ मापदंडों (या एक प्रतिनिधि और कार्यान्वयन के आधार पर एक स्टैक फ्रेम) वाले संदेश को कतारबद्ध कर रहे हैं।
एक एक्सक्लूसिव या राइट लॉक एक प्रक्रिया देता है जो फाइल के निर्दिष्ट हिस्से पर लिखने के लिए एक्सक्लूसिव एक्सेस देता है। हालांकि एक राइट लॉक जगह में है, कोई अन्य प्रक्रिया फ़ाइल के उस हिस्से को लॉक नहीं कर सकती है।
साझा या पढ़ा हुआ लॉक किसी अन्य प्रक्रिया को फ़ाइल के निर्दिष्ट हिस्से पर राइट लॉक का अनुरोध करने से रोकता है। हालांकि, अन्य प्रक्रियाएं रीड लॉक का अनुरोध कर सकती हैं।
उस पर और अधिक: http://www.gnu.org/software/libc/manual/html_node/File-Locks.html
साथ ही डेटाबेस की ओर से सिद्धांत। ओरेकल दस्तावेज के अनुसार
अनन्य लॉक मोड संबंधित संसाधन को साझा होने से रोकता है। यह लॉक मोड डेटा को संशोधित करने के लिए प्राप्त किया जाता है। किसी संसाधन को विशेष रूप से लॉक करने वाला पहला लेन-देन एकमात्र लेनदेन है जो अनन्य लॉक जारी होने तक संसाधन को बदल सकता है।
शेयर लॉक मोड संबंधित संसाधन को साझा करने की अनुमति देता है, इसमें शामिल संचालन पर निर्भर करता है। डेटा पढ़ने वाले कई उपयोगकर्ता डेटा साझा कर सकते हैं, एक लेखक द्वारा समवर्ती पहुंच को रोकने के लिए शेयर ताले पकड़े हुए हैं (जिसे एक विशेष लॉक की आवश्यकता है)। कई लेनदेन
एक ही संसाधन पर शेयर ताले प्राप्त कर सकते हैं ।