Intern
Ի՞նչ է տեղի ունենում այս ուղարկման գործողության հետ: Անվճար ալիքն ինքնաբերաբար ընդլայնվում է և ընդունումը կատարվում է ասինխրոն Goroutine-ը կլոկավորվի մինչև ստացողը հայտնվի Արժեքը կթողնվի առանց սխալի Ուղարկումը կհանգեցնի panic-ի
sobes.tech AI
Պատասխան AI-ից
В Go небуферизованный канал блокирует операцию отправки до тех пор, пока другая горутина не выполнит приём значения из канала. В вашем случае, если в программе нет активного получателя, операция ch <- 1 заблокируется и горутина, выполняющая отправку, будет ждать.
Канал не расширяет буфер автоматически, значение не отбрасывается и panic не вызывается.
Пример:
ch := make(chan int) // небуферизованный канал
// Отправка в отдельной горутине
go func() {
ch <- 1 // заблокируется, пока кто-то не прочитает
}()
// Если здесь нет чтения из ch, отправка будет ждать