Barrier — точка синхронизации, где все горутины ждут друг друга. В Go нет встроенного barrier, но легко через sync.WaitGroup или golang.org/x/sync/errgroup. Самописный: структура с mutex, counter, total и каналом. Каждая горутина вызывает Wait(): counter++, если counter == total — close(канал) и все разблокируются. Или CyclicBarrier через sync.Cond: mu.Lock(), counter++, if counter < total { cond.Wait() } else { cond.Broadcast() }. Используется в параллельных алгоритмах, бенчмарках, тестах.
Как реализовать barrier?
Middle+
135 просмотровAFK Offer AI
Что такое port и adapter в Go?