我有两个 goroutines:mainworker和 a helper,它为了一些帮助而分拆出来。 helper可能会遇到错误,所以我使用通道将错误helper从worker.
func helper(c chan <- error) (){
//do some work
c <- err // send errors/nil on c
}
这是如何helper()调用的:
func worker() error {
//do some work
c := make(chan error, 1)
go helper(c)
err := <- c
return err
}
问题:
语句是否err := <- c阻塞worker?我不这么认为,因为通道是缓冲的。
如果它是阻塞的,我如何使它成为非阻塞的?我的要求是worker让其调用者继续进行其余的工作,而无需等待值出现在通道上。
谢谢。
MMTTMM
吃鸡游戏
拉丁的传说
相关分类