Каналы в Go
В языке программирования Go каналами существуют типизированные «каналы», по которым разработчик может посылать и получать значения, используя для этого оператор
Обратите внимание, что данные перемещаются в направлении стрелки.
Каналы, точно так же, как срезы и карты, должны создаваться непосредственно перед использованием:
По дефолту как отправление, так и получение блокируются до того момента, пока вторая сторона готова не будет. Такое положение вещей дает возможность Go-процедурам синхронизироваться без какого-либо явного применения условных переменных и блокировок.
Код ниже суммирует числа среза и распределяет работу между Go-процедурами. Когда обе Go-процедуры закончат свои вычисления, произойдет вычисление итогового результата.
Таким образом, вывод будет следующим:
-5 17 12
По материалам блога https://golang-blog.blogspot.com/.