I'll preface this with: I am in no way affiliated with O'Reilly. I would suggest this book for a deeper look into Go's concurrency http://shop.oreilly.com/product/0636920046189.do While Go does have channels to allow concurrent communication, it also allows the use of mutexes for concurrency similar to c/c++. And on the flip side, there's things like libmill in C that will give you Go-like concurrency. It is also worthwhile looking at how Go's memory model works (it's similar to tcmalloc). Additionally, looking at the implementation of channels maybe interesting for you. It consists of a buffer that gets memcopy'd with mutexes for synchronization, granted, that's a very simplified view of it.