고루틴 결과를 공유하는 방법 - 채널
- 메인함수에서 Wait() 호출을 하지 않아도 채널을 읽으려고 하면 자동으로 wait 상태로 기다림.
// channel
package main
import (
"fmt"
"time"
)
func main() {
c := make(chan bool)
people := [2]string{"AAA", "BB "}
for _, person := range people {
go isSexy(person, c)
}
// time.Sleep(time.Second*5) // sleep 함수를 사용하지 않아도 됨.
fmt.Println("get from channel:", <-c) // 채널은 자동으로 wait 상태로 기다림
fmt.Println("get from channel:", <-c)
}
func isSexy(person string, channel chan bool) {
time.Sleep(time.Second)
channel <- true
}
[Running] go run "d:\workspace\GO\nomad\main.go"
get from channel: true
get from channel: true
[Done] exited with code=0 in 2.43 seconds
'GO lang' 카테고리의 다른 글
[GO] Scrapping(2) - Echo server (0) | 2021.10.15 |
---|---|
[GO] Scrapping(1) - URL checker (0) | 2021.10.07 |
[GO] 고루틴 (0) | 2021.10.07 |
[GO] 자료구조 - map/dictionary (0) | 2021.10.06 |
[GO] 커스텀 패키지 만들기 (0) | 2021.10.06 |