Sobes.tech
Middle

How does the scheduler work?

sobes.tech AI

Answer from AI

In Go, the scheduler is responsible for managing the execution of goroutines — lightweight threads.

The Go runtime uses M:N scheduling, where M is the number of system threads (OS threads), and N is the number of goroutines. The scheduler distributes goroutines across threads, switching between them for efficient CPU utilization.

Main components:

  • G (goroutine) — a unit of execution.
  • M (machine) — a system thread.
  • P (processor) — a logical processor that connects G and M.

The scheduler works so that each P can execute one goroutine at a time on one M. If a goroutine blocks (for example, on I/O), the scheduler switches to another goroutine to avoid idle time.

This allows efficient resource utilization and enables concurrency without explicit thread management.

How does the scheduler work? — Golang - sobes.tech