Original post

Go, as a language, makes it very easy to work in parallel on data through its use of go routines (more info on go routines here). However, one of the tricky parts about using go routines is a) to know when they are finished and b) to pass data back from the go routine. Channels make both of these things possible.
In this post we’re only going to look at a basic use case of channels.