Go의 goroutine과 channel은 흔한 문제를 해결하는 잘 정립된 동시성 패턴 모음을 가능하게 합니다 — 작업 분배, 팬아웃/팬인, 파이프라인, 속도 제한. 이 관용적 패턴을 알면 올바르고 효율적인 동시 시스템을 만들 수 있습니다.
워커 풀(worker pool) — 제한된 동시성
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
