Producer пишет в канал, consumer читает. Простейший: ch := make(chan Task, bufSize). Producer горутина: for task := range tasks { ch <- task }; close(ch). Consumer горутина: for task := range ch { process(task) }. Несколько consumers — запускаешь N горутин, все читают из одного канала (fan-out). WaitGroup для ожидания consumers. Буферизованный канал — чтобы producer не блокировался на каждом элементе. Это самый естественный паттерн конкурентности в Go.
Как реализовать producer-consumer?
Middle
224 просмотровAFK Offer AI
Что такое pre-commit hooks?