Sobes.tech
Senior
18

Чтение из пустого канала блокирует поток выполнения?

Компании, где спрашивали
.wrk

Ответ от нейросети

sobes.tech AI

Да, чтение из пустого канала блокирует поток выполнения до тех пор, пока в канал не будет записано значение.

Это поведение характерно для многих языков программирования с поддержкой каналов (например, Go). Если канал пуст, операция чтения ожидает появления данных, тем самым блокируя текущий горутин или поток.

Пример на Go:

ch := make(chan int)

// Чтение из канала в отдельной горутине
go func() {
    val := <-ch // блокируется, пока кто-то не запишет в ch
    fmt.Println(val)
}()

// Запись в канал
ch <- 42 // разблокирует чтение

Таким образом, чтение из пустого канала — это механизм синхронизации между потоками.