December 28, 2023
아래의 문장을 통해 Goroutine을 시작할 수 있음
go f(x, y, z)
x, y, z는 최근의 goroutine에서 계산되고, f는 새로운 goroutine에서 실행됨
Goroutine은 동일한 Address Space에서 동작하여, Shared Memory로의 접근은 Synchronized 되어야 함
이에 대한 기능을 sync 패키지에서 제공
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")
}