Why Go is good for writing modern concurrent software

Question:
Go is particularly well suited for writing modern concurrent software because (choose one or more answers):

  1. Go creates a thread for each package that your create automatically
  2. Shared memory primitives are enabled by default
  3. Concurrent function execution is built-in through the use of goroutines
  4. Concurrent processes can safely communicate shared data via channels
  5. Goroutines have low overhead and running many concurrent functions is relatively inexpensive
Answer:
C, D, E - are the correct answers