Senior
18
Чтение из пустого канала блокирует поток выполнения?
Компании, где спрашивали
.wrk
Ответ от нейросети
sobes.tech AI
Да, чтение из пустого канала блокирует поток выполнения до тех пор, пока в канал не будет записано значение.
Это поведение характерно для многих языков программирования с поддержкой каналов (например, Go). Если канал пуст, операция чтения ожидает появления данных, тем самым блокируя текущий горутин или поток.
Пример на Go:
ch := make(chan int)
// Чтение из канала в отдельной горутине
go func() {
val := <-ch // блокируется, пока кто-то не запишет в ch
fmt.Println(val)
}()
// Запись в канал
ch <- 42 // разблокирует чтение
Таким образом, чтение из пустого канала — это механизм синхронизации между потоками.