Skip to content

Goroutines

Published: at 오전 12:00

Goroutines

Goroutines은 golang에서 동시성을 가능하게해준다.

func main() {
 sexyCount("a")
     sexycount("b")
}

func sexyCount(person string) {
 for i:=0;i<10;i++ {
     fmt.Println(person, "is sexy", i)
        time.Sleep(time.Second)
    }
}

위와 같은 함수를 만든다. 1초마다 한번씩 a is sexy를 10번 출력한 다음 b is sexy를 10번 출력한 후 프로그램은 종료된다.

func main() {
 go sexyCount("a")
     sexycount("b")
}

func sexyCount(person string) {
 for i:=0;i<10;i++ {
     fmt.Println(person, "is sexy", i)
        time.Sleep(time.Second)
    }
}

a is sexyb is sexy를 동시에 출력하려면 함수 앞에 go 키워드를 붙이면 된다. go 키워드를 붙이게되면 두 함수가 동시에 실행된다.

func main() {
 go sexyCount("a")
     go sexycount("b")
}

func sexyCount(person string) {
 for i:=0;i<10;i++ {
     fmt.Println(person, "is sexy", i)
        time.Sleep(time.Second)
    }
}

그러나 위와 같이 두 함수 모두에 go 키워드를 붙히게되면 main 함수가 바로 종료되기 때문에 두 함수 모두 실행되지 않는다. Gorountines은 main 함수가 실행되고 있을 경우에만 유효하다.

노마드코더, https://nomadcoders.co/go-for-beginners