• Running code with goroutines
    • Detecting and fixing race conditions
    • Sharing data with channels

    Concurrency in Go is the ability for functions to run independent of each other.

    Concurrency synchronization comes from a paradigm called communicating sequential **processes** or CSP.
    CSP is a message-passing model that works by communicating data between goroutines instead of locking data to synchronize access.
    The key data type for synchronizing and passing messages between goroutines is called a channel.