Go
Goroutines
खोज…
परिचय
एक गोरोइनट गो रनटाइम द्वारा प्रबंधित एक हल्का धागा है।
जा च (x, y, z)
एक नया गोरोइन चालू करता है
च (x, y, z)
F, x, y, और z का मूल्यांकन वर्तमान गोरआउट में होता है और f का निष्पादन नए गोरोइन में होता है।
Goroutines एक ही एड्रेस स्पेस में चलते हैं, इसलिए शेयर्ड मेमोरी तक पहुंच को सिंक करना होगा। सिंक पैकेज उपयोगी प्राइमेटिव प्रदान करता है, हालाँकि आपको गो में इनकी ज्यादा आवश्यकता नहीं होगी क्योंकि अन्य प्राइमेटिव हैं।
Goroutines बेसिक प्रोग्राम
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 5; i++ {
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
}
func main() {
go say("world")
say("hello")
}
एक गोरोइन एक फ़ंक्शन है जो अन्य कार्यों के साथ समवर्ती चलाने में सक्षम है। गोरोइन बनाने के लिए हम एक फ़ंक्शन मंगलाचरण के बाद कीवर्ड go
उपयोग करते go
:
package main
import "fmt"
func f(n int) {
for i := 0; i < 10; i++ {
fmt.Println(n, ":", i)
}
}
func main() {
go f(0)
var input string
fmt.Scanln(&input)
}
आमतौर पर, फ़ंक्शन कॉल फ़ंक्शन बॉडी के अंदर सभी स्टेटमेंट्स को निष्पादित करता है और अगली पंक्ति में वापस लौटता है। लेकिन, गोरोइन के साथ हम अगली पंक्ति में तुरंत लौटते हैं क्योंकि यह फ़ंक्शन के पूरा होने की प्रतीक्षा नहीं करता है। तो, एक Scanln
फ़ंक्शन के लिए कॉल शामिल है, अन्यथा प्रोग्राम को संख्याओं को मुद्रित किए बिना बाहर Scanln
दिया गया है।