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

गो में समवर्ती पैटर्न; वर्कर पूल और फैन-आउट/फैन-इन

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

Concurrency patterns in Go; worker pools and fan-out/fan-in

गो अपने असाधारण समवर्ती मॉडल के लिए जाना जाता है, लेकिन कई डेवलपर्स केवल गोरोइन और चैनलों पर ध्यान केंद्रित करते हैं। हालाँकि, वर्कर पूल और फैन-आउट/फैन-इन जैसे समवर्ती पैटर्न वास्तविक दक्षता प्रदान करते हैं।

यह लेख इन उन्नत अवधारणाओं पर प्रकाश डालेगा, जिससे आपको अपने गो अनुप्रयोगों में थ्रूपुट को अधिकतम करने में मदद मिलेगी।

समवर्तीता क्यों मायने रखती है

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

श्रमिक पूल

कार्यकर्ता पूल आपको निश्चित "कर्मचारियों" को कार्य सौंपकर गोरोइन की संख्या सीमित करने की अनुमति देते हैं। यह ओवरसब्सक्रिप्शन को रोकता है, संसाधन खपत को कम करता है, और कार्य निष्पादन को प्रबंधनीय बनाता है।


package main

import (
    "fmt"
    "sync"
    "time"
)

func worker(id int, jobs 

इस उदाहरण में:

  • हमारे पास तीन कर्मचारी हैं जो एक साथ कार्य संसाधित करते हैं।
  • प्रत्येक कार्य चैनलों के माध्यम से श्रमिकों को दिया जाता है, और परिणाम प्रसंस्करण के लिए एकत्र किए जाते हैं।

फैन-आउट/फैन-इन पैटर्न

फैन-आउट/फैन-इन पैटर्न कई गोरोइन को एक ही कार्य को संसाधित करने की अनुमति देता है, जबकि फैन-इन परिणामों को एक ही आउटपुट में वापस इकट्ठा करता है। यह कार्यों को विभाजित करने और फिर परिणामों को एकत्रित करने के लिए उपयोगी है।


package main

import (
    "fmt"
    "sync"
    "time"
)

func workerFanOut(id int, tasks 

उपरोक्त कोड में:

  • फैन-आउट: हम कई गोरोइन (कार्यकर्ता) बनाते हैं जो कार्यों को एक साथ संभालते हैं।
  • फैन-इन: प्रसंस्करण के बाद, सभी श्रमिकों के परिणामों को आगे की प्रक्रिया के लिए एकत्रित किया जा सकता है।

वेब सर्वर, बैच प्रोसेसिंग सिस्टम, या I/O-बाउंड एप्लिकेशन को अनुकूलित करने के लिए समवर्ती पैटर्न लागू किया जा सकता है। वर्कर पूल और फैन-आउट/फैन-इन जैसे पैटर्न का उपयोग सिस्टम क्षमता को बढ़ाए बिना इष्टतम संसाधन उपयोग सुनिश्चित करता है।

अपना ज्ञान बढ़ाने के लिए अगले कदम:

  • पता लगाएं कि इन पैटर्न को अन्य समवर्ती चुनौतियों तक कैसे बढ़ाया जा सकता है।
  • अनुरोधों को प्रबंधित करने वाले वर्कर पूल के साथ एक वास्तविक समय की वेब सेवा बनाएं।

गो की संगामिति में सफलता की कुंजी संरचना है। इन समवर्ती पैटर्न में महारत हासिल करने से आपके गो कौशल में सुधार होगा और आपको अत्यधिक प्रदर्शन करने वाले एप्लिकेशन लिखने में मदद मिलेगी।

अगली पोस्ट में गो के बारे में अधिक जानकारी के लिए बने रहें!

आप मेरे लिए एक किताब खरीदकर मेरा समर्थन कर सकते हैं :)

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/envitab/concurrency-patterns-in-go-worker-pools-and-fan-outfan-in-6ka?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163 से संपर्क करें इसे हटाने के लिए .com
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3