"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गोलांग में समय सीमा के साथ ताला कैसे लागू करें?

गोलांग में समय सीमा के साथ ताला कैसे लागू करें?

2024-11-09 को प्रकाशित
ब्राउज़ करें:697

How to Implement a Lock with a Deadline in Golang?

गोलंग में समय की कमी के साथ ताले प्राप्त करना

गोलंग में ताले के साथ काम करते समय, ऐसी स्थितियां होती हैं जहां आपको या तो ताला प्राप्त करने की आवश्यकता हो सकती है तुरंत या किसी प्रकार की समय सीमा का पालन करें। जबकि मानक लाइब्रेरी का सिंक.म्यूटेक्स केवल लॉक() और अनलॉक() फ़ंक्शन प्रदान करता है, एक ऐसी तकनीक है जो आपको एक समय सीमा के साथ लॉक का अनुकरण करने की अनुमति देती है।

एक समय सीमा के साथ लॉक लागू करना

एक समयसीमा के साथ लॉक बनाने के लिए, आप एक बफर आकार वाले चैनल का उपयोग कर सकते हैं:

l := make(chan struct{}, 1)

लॉक करने के लिए, चैनल को एक स्ट्रक्चर वैल्यू भेजें:

l 

अनलॉक करने के लिए, चैनल से प्राप्त करें:

ट्राई लॉक निष्पादित करना

ट्राई लॉक का प्रयास करने के लिए, एक चयन कथन का उपयोग करें:

select {
case l 

यह कोड उपलब्ध होने पर तुरंत लॉक प्राप्त कर लेगा। यदि लॉक पहले से ही लगा हुआ है, तो चयन कथन तब तक ब्लॉक रहेगा जब तक लॉक जारी नहीं हो जाता। a time.After() चैनल सेलेक्ट स्टेटमेंट में:

सेलेक्ट करें { केस एल यह कोड एक मिनट तक लॉक प्राप्त करने का प्रयास करेगा। यदि टाइमआउट समाप्त हो जाता है, तो चयन कथन बाहर निकल जाएगा, और लॉक का अधिग्रहण नहीं किया जाएगा। आपको एक समय सीमा के साथ ट्राई लॉक लागू करने की अनुमति देता है। यह तकनीक उन परिदृश्यों में उपयोगी हो सकती है जहां आपको जल्दी से या एक विशिष्ट समय सीमा के भीतर ताला प्राप्त करने की आवश्यकता होती है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3