Как реализовать producer-consumer?

Middle
224 просмотров
AFK Offer AI

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.

Следующий вопрос

Что такое pre-commit hooks?