खोज…


परिचय

एक गोरोइनट गो रनटाइम द्वारा प्रबंधित एक हल्का धागा है।

जा च (x, y, z)

एक नया गोरोइन चालू करता है

च (x, y, z)

F, x, y, और z का मूल्यांकन वर्तमान गोरआउट में होता है और f का निष्पादन नए गोरोइन में होता है।

Goroutines एक ही एड्रेस स्पेस में चलते हैं, इसलिए शेयर्ड मेमोरी तक पहुंच को सिंक करना होगा। सिंक पैकेज उपयोगी प्राइमेटिव प्रदान करता है, हालाँकि आपको गो में इनकी ज्यादा आवश्यकता नहीं होगी क्योंकि अन्य प्राइमेटिव हैं।

संदर्भ: https://tour.golang.org/concurrency/1

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 दिया गया है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow