Skip to content

Go Routines

  • Go routines is a way to spawn code so that it can be run in parallel or concurrently

The Main Routine

  • The main routine is the top-level routine on your program. Other routines can be spawn from it
  • Other routines are called child routines and are created using the go keyword

Go scheduler

  • The routines are managed by the Go scheduler which uses by default all the available cores at your machine
  • The go scheduler manages the go routines by applying context switching (interrupting some routines and resuming others)
  • The context switching is usually executed when the routine is in a wait state (e.g., http calls)
  • With these concurrency techniques the overall utilization of a single thread is improved

Channels

  • It's a hub for communication between go routines
  • Channels are typed. The messages sent through a channel must be of the same type