假设我有一个缓冲发送和非缓冲接收通道:
s := make(chan<- int, 5)
r := make(<-chan int)
是否可以select同时r选择它们,以便在有内容阅读时s将其选中,如果未满则将被选中?与此等效的东西,但不使用 100% CPU:
for {
if len(s) < cap(s) {
// Send something
}
if len(r) > 0 {
// Receive something
}
}
请注意,我想在发送时决定要发送的内容,而不是更早。
编辑
这个问题基本上相当于“我可以阻塞直到一个通道准备好发送,而不发送任何东西吗?”
ABOUTYOU
慕标5832272
相关分类