-
Создание канала:
ch := make(chan int) -
Отправка данных в канал:
ch <- 42 -
Получение данных из канала:
data := <-ch -
Закрытие канала:
close(ch) -
Проверка закрытия канала:
data, ok := <-ch if !ok { // channel is closed } -
Использование оператора select для работы с несколькими каналами:
select { case data := <-ch1: // handle data from ch1 case data := <-ch2: // handle data from ch2 } -
Использование горутин для одновременного выполнения функций:
go func() { // code to be executed concurrently }() -
Ожидание завершения горутин с использованием sync.WaitGroup:
var wg sync.WaitGroup wg.Add(1) // increment the WaitGroup counter go func() { defer wg.Done() // decrement the WaitGroup counter when finished // code to be executed concurrently }() wg.Wait() // wait for all goroutines to finish
Эти примеры демонстрируют базовое использование каналов, горутин и управления параллелизмом в Go. Важно отметить, что в языке Go доступно множество более продвинутых методов и шаблонов.