select
, sync.WaitGroup
e sync.Mutex
select
- Permite gerenciar múltiplos
channels
, escolhendo o primeiro pronto para operação. - Similar a
select
em sistemas operacionais ouSelector
em Java NIO.
Exemplo
Carregando editor interativo...
Saída
Recebido: Canal 1
Recebido: Canal 2
sync.WaitGroup
- Sincroniza a espera pelo término de múltiplas
goroutines
. - Similar a
CountDownLatch
em Java.
Exemplo
Carregando editor interativo...
sync.Mutex
- Garante exclusão mútua para proteger dados compartilhados.
- Similar a
synchronized
ouReentrantLock
em Java.
Exemplo
Carregando editor interativo...
Caso de uso
select
é usado em sistemas reativos, WaitGroup
em tarefas paralelas, e Mutex
em acesso a recursos compartilhados, como contadores ou caches.