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

गो में बफ़र्ड सेंड और अनबफ़र्ड रिसीव चैनल का कुशलतापूर्वक चयन कैसे करें?

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

How to Efficiently Select on Buffered Send and Unbuffered Receive Channels in Go?

गो भाषा: बफ़र किए गए और अनबफ़र्ड चैनलों पर एक साथ चयन करना

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

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

package main

import (
    "fmt"
    "time"
)

func valueToSend() int {
    // Generate a value to send, calculated/acquired each attempt
    return 0
}

func main() {
    s := make(chan

डेटा भेजने या प्राप्त करने से पहले चैनल की लंबाई या क्षमता जांच पर भरोसा करते समय सावधानी बरती जानी चाहिए। इस तरह के तरीकों से अप्रत्याशित व्यवहार हो सकता है, क्योंकि चेक और वास्तविक भेजने/प्राप्त करने के ऑपरेशन के बीच चैनल की स्थिति बदल सकती है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3