[go] channel synchronization https://gobyexample.com/channel-synchronization 채널을 이용하여 고루틴 간의 실행 순서를 동기화할 수 있습니다. 여기서는 채널의 블러킹 recv를 이용하여 고루틴이 끝날 때 까지 대기하는 방법을 보여줍니다. package main import "fmt" import "time" // 고루틴으로 실행시킬 함수입니다. // done 채널은 고루틴의 작업이 끝났음을 알려주기 위해 사용됩니다. func worker(done chan bool) { fmt.Print("working...") time.Sleep(time.Second) fmt.Println("done") // 값을 넣어 끝났음을 알립니다. done 더보기 [go] channel buffering https://gobyexample.com/channel-bufferinggo의 채널들은 기본적으로 unbuffered입니다. 이는 채널 내부에 별도의 들어오는 값을 저장하는 공간이 없음을 뜻하며, 이 경우에는 미리 ' 더보기 [go] channel https://gobyexample.com/channels package main import "fmt" func main() { // 'make'를 이용하여 새로운 채널을 만듭니다. // 채널 뒤에는 채널에 담을 변수의 타입이 뒤따라옵니다. messages := make(chan string) // 'channel 더보기 이전 1 ··· 31 32 33 34 다음