본문 바로가기

GO lang

[GO] channel

고루틴 결과를 공유하는 방법 - 채널

- 메인함수에서 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