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

आप गोलांग में एकाधिक चैनलों से समवर्ती रीडिंग कैसे प्राप्त कर सकते हैं?

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

How Can You Achieve Concurrent Reading from Multiple Channels in Golang?

गोलंग में एक साथ कई चैनलों से पढ़ना

गोलंग में, "कोई भी-एक" चैनल बनाना संभव है, जहां एकाधिक गोरोइन एक ही चैनल पर एक साथ लिख सकते हैं। आइए जानें कि इस कार्यक्षमता को कैसे प्राप्त किया जाए।

एक दृष्टिकोण एक चयन कथन का उपयोग करना है, जो आपको डेटा प्राप्त करने के लिए कई चैनलों की प्रतीक्षा करने की अनुमति देता है:

func main() {
  // Create input channels
  c1 := make(chan int)
  c2 := make(chan int)
  // Create output channel
  out := make(chan int)

  // Start a goroutine that reads from both input channels and sums the received values
  go func(in1, in2 <-chan int, out chan<- int) {
    for {
      sum := 0
      select {
      case sum = <-in1:
        sum  = <-in2
      case sum = <-in2:
        sum  = <-in1
      }
      out <- sum
    }
  }(c1, c2, out)
}

यह गोरोइन अनिश्चित काल तक चलता है, दोनों चैनलों से पढ़ता है और प्राप्त मूल्यों का योग आउटपुट चैनल पर भेजता है। गोरोइन को समाप्त करने के लिए, दोनों इनपुट चैनलों को बंद करना आवश्यक है।

एक वैकल्पिक दृष्टिकोण के रूप में, आप निम्नलिखित कोड का उपयोग कर सकते हैं:

func addnum(num1, num2, sum chan int) {
  done := make(chan bool)

  go func() {
    n1 := <-num1
    done <- true        // Signal completion of one channel read
  }()

  n2 := <-num2             // Read from the other channel
  <-done                   // Wait for the first read to complete

  sum <- n1   n2
}

यह फ़ंक्शन एक चैनल सफलतापूर्वक पढ़े जाने पर सूचित करने के लिए एक अलग "पूर्ण" चैनल का उपयोग करता है। हालाँकि, यह दृष्टिकोण कम लचीला हो सकता है, क्योंकि इसमें इनपुट चैनलों को लिखने वाले गोरआउट्स को संशोधित करने की आवश्यकता होती है।

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

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

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

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

Copyright© 2022 湘ICP备2022001581号-3