] । एक सामान्य दृष्टिकोण एक चैनल का उपयोग करने के लिए संकेत पूरा करने के लिए है। हालाँकि, इस विधि से "बंद चैनल पर लिखना" घबराहट हो सकती है, यदि गोरूटीन अपेक्षित क्रम में समाप्त नहीं होते हैं।
बेहतर समाधान में संदर्भों का उपयोग करना शामिल है। संदर्भ गोरूटीन के बीच संचार और रद्दीकरण के लिए एक तंत्र प्रदान करते हैं। यहां बताया गया है कि आप इसे कैसे लागू कर सकते हैं:
पैकेज मुख्य आयात ( "प्रसंग" "साथ-साथ करना" ) func मुख्य () { // इसे रद्द करने के लिए एक संदर्भ और एक फ़ंक्शन बनाएं CTX, रद्द करें: = संदर्भ। // Goroutine पूरा होने को ट्रैक करने के लिए एक प्रतीक्षा समूह को प्रारंभ करें wg: = sync.waitgroup {} wg.add (3) // वेट ग्रुप में 3 goroutines जोड़ें // तीन गोरआउट लॉन्च करें // प्रत्येक goroutine संदर्भ के लिए सुनता है गो फंक () { defer wg.done () के लिए { चुनना { मामला
इस उदाहरण में, जब तीसरा गोरौटीन अपने संचालन को पूरा करता है, तो यह संदर्भ को रद्द कर देता है। यह अन्य गोरूटीन्स को रद्द करने का प्रचार करता है, जिससे उन्हें भी समाप्त हो जाता है। संदर्भों का उपयोग करके, हम घबराहट के लिए क्षमता को समाप्त कर देते हैं और यह सुनिश्चित करते हैं कि सभी गोरूटिन प्रभावी रूप से उनकी समाप्ति का समन्वय करते हैं।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3