Locks versus channels in concurrent Go
Go has popularized the mantra don’t communicate by sharing memory; share memory by communicating. The language does have the traditional mutex (mutual exclusion construct) to coordinate access to shared memory, but it favors the use of channels to share information among goroutines. read...