Podemos fazer uso de canais se quisermos sincronizar goroutines. Ao sincronizar, queremos fazer com que as goroutines funcionem de uma maneira definida, por exemplo, não iniciando a próxima goroutine até que a anterior tenha finalizado sua execução.
Os canais ajudam a fazer isso, pois podem ser usados para bloquear o processo e, em seguida, também podem ser usados para notificar a segunda goroutine de que a anterior terminou seu trabalho.
Vamos considerar um exemplo muito básico de sincronização de canais, onde veremos como podemos fazer isso com a ajuda de um canal em buffer.