September 5th, 2017

Индусы покоряют Go

Меня не перестает изумлять способность индусов объяснить всему миру то, чего они сами не поняли.
https://golangbot.com/buffered-channels-worker-pools/
Великий исследователь придумал очень сложную concurrent задачу, которую иначе как Go не решить. Есть 100 трехзначных чисел. Для каждого нужно посчитать сумму цифр. Чтобы не было совсем скучно, каждая goroutine’а засыпает на две секунды. Если сумму цифр трехзначного числа можно посчитать за наносекунды, то секунда – это уже не один, а два порядка выше.
А теперь, внимание, фокус! Запускаем в два раза больше goroutine. Поскольку, все, что они делают 99.99% времени – это спят, конечно в два раза большее количество спящих недопотоков справилось с работой в два раза быстрей. С тем же успехом можно было бы создать их сразу сто, и получить десятикратный прирост performance’а. Вот где сила то!