गोलंग में समय की कमी के साथ ताले प्राप्त करना
गोलंग में ताले के साथ काम करते समय, ऐसी स्थितियां होती हैं जहां आपको या तो ताला प्राप्त करने की आवश्यकता हो सकती है तुरंत या किसी प्रकार की समय सीमा का पालन करें। जबकि मानक लाइब्रेरी का सिंक.म्यूटेक्स केवल लॉक() और अनलॉक() फ़ंक्शन प्रदान करता है, एक ऐसी तकनीक है जो आपको एक समय सीमा के साथ लॉक का अनुकरण करने की अनुमति देती है।
एक समय सीमा के साथ लॉक लागू करना
एक समयसीमा के साथ लॉक बनाने के लिए, आप एक बफर आकार वाले चैनल का उपयोग कर सकते हैं:
l := make(chan struct{}, 1)
लॉक करने के लिए, चैनल को एक स्ट्रक्चर वैल्यू भेजें:
lअनलॉक करने के लिए, चैनल से प्राप्त करें:
ट्राई लॉक निष्पादित करना
ट्राई लॉक का प्रयास करने के लिए, एक चयन कथन का उपयोग करें:
select { case lयह कोड उपलब्ध होने पर तुरंत लॉक प्राप्त कर लेगा। यदि लॉक पहले से ही लगा हुआ है, तो चयन कथन तब तक ब्लॉक रहेगा जब तक लॉक जारी नहीं हो जाता। a time.After() चैनल सेलेक्ट स्टेटमेंट में:
सेलेक्ट करें { केस एल यह कोड एक मिनट तक लॉक प्राप्त करने का प्रयास करेगा। यदि टाइमआउट समाप्त हो जाता है, तो चयन कथन बाहर निकल जाएगा, और लॉक का अधिग्रहण नहीं किया जाएगा। आपको एक समय सीमा के साथ ट्राई लॉक लागू करने की अनुमति देता है। यह तकनीक उन परिदृश्यों में उपयोगी हो सकती है जहां आपको जल्दी से या एक विशिष्ट समय सीमा के भीतर ताला प्राप्त करने की आवश्यकता होती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3