Главное:
-
Проверять инициализирован ли канал
-
Закрывать канал
-
Кто пишет в канал, тот его и закрывает
-
Каналы всегда создаются в куче
-
Незакрытые каналы могут привести к утечке горутин
-
GC удаляет как закрытые, так и незакрытые каналы.
-
Наличие и заполненность буфера у канала никакого влияния не оказывает на работу GC
Реализация состояний таблицы + примеры
Различные примеры, наброски, черновик
Fan-in — это стратегия мультиплексирования, при которой входы нескольких каналов объединяются в один выходной канал.
Fan-out — это обратная операция, при которой один канал разделяется на несколько каналов.
Числа фибоначи
Генератор случайных чисел с использованием канала
Функция func Merge(f func(int) int, in1 <-chan int, in2 <-chan int, out chan <- int, n int)
Конвейерная обработка данных (pipeline), в которой последовательность чисел из массива input проходит через три этапа обработки: генерация, добавление 1 и умножение на 2, и результат выводится в консоль
Обход Race condition (MUTEX)
Чтение из закрытого буферизированного канала
Общение горутин через каналы
Создаем пул из трех рабочих горутин, которые выполняют некоторый рабочий цикл
Канал и горутина (без WG)
Пул воркеров
Работа с горутин и каналов с использованием WaitGroup