गोलंग में समानांतर प्रसंस्करण: प्रदर्शन के लिए समवर्तीता का लाभ उठाना
प्रदान किए गए कोड पर विचार करें, जो गोरआउट्स के साथ समानांतर प्रसंस्करण को दर्शाता है। हालाँकि, यह समवर्ती निष्पादन की क्षमता और समानता प्राप्त करने के लिए इष्टतम दृष्टिकोण के बारे में सवाल उठाता है। गारंटी नहीं. जबकि गोरआउट्स एक हल्के समवर्ती तंत्र प्रदान करते हैं, ओएस शेड्यूलर वास्तविक निष्पादन अनुक्रम निर्धारित करता है। गो 1.5 के रिलीज़ नोट्स के अनुसार, GOMAXPROCS, आम तौर पर उपलब्ध कोर के साथ संरेखित होता है। , fmt.Scanln अविश्वसनीय हो सकता है, विशेषकर उत्पादन परिवेश में। इसके बजाय, यह सुनिश्चित करने के लिए कि बाहर निकलने से पहले सभी गोरोइन पूरे हो जाएं, एक sync.WaitGroup लागू करने पर विचार करें। इसके अतिरिक्त, समवर्ती नियंत्रण को बढ़ाने और समानांतर कार्यों के लिए उचित संसाधन उपयोग सुनिश्चित करने के लिए, प्रत्येक गोरोइन के लिए अलग-अलग डॉवर्क श्रमिकों के चैनल का उपयोग करने की अनुशंसा की जाती है।
समानांतर फ़ंक्शन निष्पादन के लिए उपयोगिता फ़ंक्शन
समानांतर फ़ंक्शन निष्पादन को सरल बनाने के लिए, कोई मौजूदा उपयोगिता फ़ंक्शन का लाभ उठा सकता है निम्नलिखित:
आयात "सिंक" // Parallelize फ़ंक्शन कॉल को समानांतर करता है func Parallelize(फ़ंक्शन ...func()) { var waitGroup सिंक.WaitGroup waitGroup.Add(len(functions)) प्रतीक्षा समूह को स्थगित करें। प्रतीक्षा करें() _ के लिए, फ़ंक्शन := रेंज फ़ंक्शंस { जाओ func(f func()) { प्रतीक्षा समूह को स्थगित करें। हो गया() एफ() }(समारोह) } }
इस फ़ंक्शन को कोड स्निपेट पर लागू करना:func1 := func() { f(0) } func2 := func() { f(1) } func3 := func() { f(2) } समानांतर करें(func1, func2, func3)
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3