Simultaneidade limitada simples em Go

Limitar a simultaneidade em ir com WaitGroups é fácil; aqui está um exemplo básico. Cada parte é explicada no meu blog .

package main

import "sync"

func main
() {
var wg sync.WaitGroup
wg
.Add(1)

go func
(wg *sync.WaitGroup) {
AccessALimitedResource()
wg
.Done()
}(&wg)

wg
.Wait()
}