кода маленький
вкратце это worker pool который читает из канала данные, засыпает на N времени и повторяет сие действие
https://pastebin.com/7rMBgGWZ
залил код на pastebin
есть 2 вопроса.
1) Спустя некоторое время я ловлю дедлок, можете пожалуйста раскритиковать и указать где я накосячил с логикой?
2) Почему на 55 строке объязательно нужно делать fmt.Println(<-workers), если я попробую просто <-workers сделать, то поймаю на самом старте ошибку и код вообще будет ианче работать
как так получается? time.Sleep(1)не помогает в таком случае
1. не используй pastebin, используй play.golang.org 2. почему у тебя Worker выполняет wg.Add(1)?! вообще-то wg.Add должен быть в начале цикла. https://play.golang.org/p/ESuboUUgF36 3. почему у тебя wg.Add(1) два, а wg.Done()’ов всего один?! wg.Wait же в таком случае вообще никогда не дождётся. честно говоря я пытался понять что ты хотел реализовать, но у меня не получилось. Объясни чего ты в конце концов хотел добиться
Обсуждают сегодня