Middle+
32
Dans quel ordre l'opérateur select lit-il à partir de plusieurs canaux?
Entreprises à qui on a demandé
ТБанк
Réponse de l'IA
sobes.tech IA
В Go оператор select выбирает случайный готовый (ready) канал, если таких несколько. Если ни один канал не готов, select блокируется (если нет default).
Порядок чтения из нескольких каналов не фиксирован и не гарантируется. Это сделано для предотвращения блокировок и обеспечения справедливого распределения.
Пример:
select {
case msg1 := <-chan1:
fmt.Println("Получено из chan1:", msg1)
case msg2 := <-chan2:
fmt.Println("Получено из chan2:", msg2)
default:
fmt.Println("Нет готовых каналов")
}
Если оба chan1 и chan2 готовы, Go случайно выберет один из них.