Go Concurrency In Action you can switch between branched for learn this sections channel-intro // send message from goroutine waitgroup // simple use wait group