Go has a dedicated concurrency model that makes it particularly useful for applications that require high performance, scalability, and reliability.
- If you don’t need it, don’t use it.
- Don’t communicate by sharing memory, share memory by communicating.
- Don’t over-engineer things by using shared memory and complicated,
error-prone
synchronization primitives, instead, usemessage-passing
between go routines so variables and data can be used in the appropriate sequence.
- The fundamentals of concurrency in Go - Goroutines
- Techniques that can be used to write concurrent programs
- Concurrency patterns
- Advantages
- Pitfalls