ExpertiDict

Go · Avançado · Inglês · Técnico

scheduler

/ˈskɛdʒ.u.lɚ/substantivo

Escalonador do runtime do Go que distribui milhares de goroutines (G) sobre poucas threads do sistema (M), usando processadores lógicos (P) no modelo GMP.

Onde usar

Explica por que goroutines são baratas e por que uma delas bloqueada em chamada de sistema não para as outras. GOMAXPROCS define quantos P existem; desde o Go 1.14, o escalonador pode preemptar laços longos.

Em código

n := runtime.GOMAXPROCS(0) // P disponíveis
fmt.Println(n, runtime.NumGoroutine())
runtime.Gosched() // cede a vez

Exemplos

The scheduler runs thousands of goroutines on a few threads.

O scheduler roda milhares de goroutines em poucas threads.

Don't rely on the scheduler to run goroutines in order.

Não conte com o scheduler para rodar goroutines em ordem.

Cuidado

Não presuma ordem de execução entre goroutines; o scheduler decide, e programas corretos não dependem disso.

Sinônimos

escalonador, modelo GMP

Veja também

Todos os termos de Go