我正在尝试在Go中构建一些信号量。尽管当channel接收到信号时,它会永远休眠。我试过改变sleep方式和sleep持续时间,但它仍然永远停止。这里是我尝试过的表示:funcmain(){backOffChan:=make(chanstruct{})gofunc(){time.Sleep(2)backOffChan我希望它在打印日志消息并返回后才返回。谢谢! 最佳答案 这段代码有很多问题,主要是使用for/select的紧密循环可能不允许其他goroutine在channel上发送。由于defaultcase是空的,而select