मुख्य अंतर यह है कि goto
उन भाषाओं में बयान जो उन्हें समर्थन देते हैं, कार्यक्रम में किसी भी स्थान पर कम या कोई प्रतिबंध नहीं देते हैं। जबकि सतह पर coroutines समान लग सकता है वे बहुत अलग हैं।
कोरआउट्स प्रक्रियाओं को निलंबित करने की अनुमति देता है (उनके सभी संदर्भों के साथ) और पर स्थानों पर फिर से शुरू किया गया। इसलिए कोरआउटिन रोकते हैं और yield
पूर्ण होने से पहले अन्य प्रक्रियाओं पर नियंत्रण करते हैं और फिर बाद में फिर से शुरू करते हैं, जिन बिंदुओं पर प्रक्रियाएं उत्पन्न होती हैं और फिर से शुरू होती हैं, समय से पहले ज्ञात होती हैं।
प्रक्रिया में किसी मनमानी रेखा पर कूदना संभव नहीं है, प्रश्न में प्रक्रिया को किसी विशिष्ट स्थान पर फिर से शुरू करने का इंतजार करना पड़ता है। हालांकि नियंत्रण के इस गुजरने से goto
की तुलना में अधिक संरचित है, इस शक्तिशाली तंत्र को अत्यधिक उपयोग करके भ्रमित कोड लिखना संभव है। फिर फिर यह है कि हर शक्तिशाली प्रोग्रामिंग भाषा सुविधा के साथ मामला नहीं है? ;-)
स्रोत
2009-11-11 21:44:25
आपको यह भी पता चलेगा कि गोरौटाइन! = कोरोटाइन। एक गोरौटाइन वास्तव में सरल निर्माण और प्रबंधन के साथ एक थ्रेड की तरह है। http://golang.org/doc/effective_go.html#goroutines –