गो प्लेग्राउंड पर एक कोड चलाते समय, डेवलपर्स को अपनी स्थानीय मशीनों पर समान कोड चलाने की तुलना में विसंगतियों का सामना करना पड़ सकता है। यह लेख व्यवहार संबंधी अंतरों की पड़ताल करता है, खासकर जब गोरआउट्स और सिंक्रोनाइज़ेशन तंत्र से निपटते हैं।
निम्नलिखित गो कोड पर विचार करें:
package main
import (
"fmt"
)
func other(done chan bool) {
done गो खेल के मैदान पर, यह कोड एक त्रुटि उत्पन्न करता है: "प्रक्रिया में बहुत लंबा समय लगा।" इससे पता चलता है कि अन्य फ़ंक्शन के भीतर बनाया गया गोरोइन अनिश्चित काल तक चलता है। &&&]हैलो, खेल का मैदान
समाप्त।
इसका तात्पर्य यह है कि मुख्य गोरोइन खत्म होने पर अन्य के भीतर बनाया गया गोरोइन समाप्त हो जाता है।
Hello, playground
Finished.
गो खेल के मैदान और स्थानीय मशीन के बीच अलग-अलग व्यवहार इसका श्रेय उपलब्ध प्रोसेसरों की संख्या को दिया जा सकता है। गो खेल के मैदान पर, GOMAXPROCS 1 पर डिफ़ॉल्ट होता है, जिसका अर्थ है कि एक समय में केवल एक ही गोरोइन चल सकता है। इसलिए, उपरोक्त उदाहरण में, अन्य के भीतर बनाया गया अंतहीन गोरोइन मुख्य गोरोइन को जारी रखने से रोकता है। समवर्ती रूप से चलाएँ. इस प्रकार, अन्य के भीतर बनाया गया अंतहीन गोरोइन मुख्य गोरोइन को बाहर निकलने से नहीं रोकता है।निष्कर्षगो में गोरोइन का व्यवहार उपलब्ध प्रोसेसर (GOMAXPROCS) की संख्या पर निर्भर करता है। जबकि गो खेल का मैदान 1 के डिफ़ॉल्ट मान का उपयोग करता है जो अनिश्चित काल तक चलने वाले गोरोइन की धारणा को जन्म दे सकता है, कई कोर के साथ स्थानीय मशीन पर एक ही कोड चलाने से एक अलग व्यवहार मिलता है जहां मुख्य गोरोइन खत्म होने पर गोरोइन समाप्त हो सकता है। यह समझ डेवलपर्स को गलतफहमी से बचने में मदद करती है और यह सुनिश्चित करती है कि उनका कोड विभिन्न वातावरणों में अपेक्षित व्यवहार करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3