Goroutines and channels are great.
If you're using C++ and want a similar runtime efficiency with less brain cycles dedicated to memory allocation, use Go.
If you want something that executes an order of magnitude more efficiently than anything you can do in Go or C++, and don't mind banging your head against the wall for a few weeks while the compiler educates you about why you're an idiot, then Rust is your friend