freeCodeCamp/guide/english/go/goroutines/index.md

37 lines
1.1 KiB
Markdown

---
title: Goroutines
---
## Goroutines
Goroutines are functions or methods that run concurrently with other functions or methods. Goroutines can be thought of as light weight threads. The cost of creating a Goroutine is tiny when compared to a thread.
Prefix the function or method call with the keyword `go` and you will have a new Goroutine running concurrently.
Let's look at an example:
func say(s string) {
fmt.Println(s)
time.Sleep(100 * time.Millisecond)
fmt.Println(s)
}
func main() {
go say("hello")
say("world")
}
Output:
world
hello
hello
world
You can observe that since we called `say("hello")` in a goroutine, it'll run concurrently and will print the output in no particular order in regards to the regualar function call `say("world")`.
#### More Information:
* [A Tour of Go](https://tour.golang.org/concurrency/1)
* [Go By Example](https://gobyexample.com/goroutines)
* [Golang Book](https://www.golang-book.com/books/intro/10)
* [The Go Programming Language Specification](https://golang.org/ref/spec#Go_statements)