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

सीपीयू उपयोग को कम करते हुए गो में चैनल तैयारी के साथ अतुल्यकालिक संचार कैसे प्राप्त करें?

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

How to Achieve Asynchronous Communication with Channel Readiness in Go While Minimizing CPU Utilization?

चैनल रेडीनेस के साथ अतुल्यकालिक संचार

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

समस्या को समझने के लिए, निम्नलिखित संदर्भ पर विचार करें:

s := make(chan

प्रश्न उठता है कि क्या दोनों चैनलों पर चयन करना संभव है जैसे कि जब डेटा पढ़ने के लिए उपलब्ध हो तो r का चयन किया जाता है, और जब पढ़ने के लिए डेटा उपलब्ध हो तो s का चयन किया जाता है। चैनल भरा नहीं है।

Solution

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

s := make(chan
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3