【发布时间】:2013-07-30 20:31:02
【问题描述】:
我怎样才能执行以下操作?:
func foo(input <-chan char, output chan<- string) {
var c char
var ok bool
for {
if ThereAreValuesBufferedIn(input) {
c, ok = <-input
} else {
output <- "update message"
c, ok = <-input
}
DoSomethingWith(c, ok)
}
}
基本上,我想检查 chan 中是否有缓冲值,如果没有,我可以在线程被阻塞之前发送更新消息。
【问题讨论】:
标签: go buffer channel goroutine