下面我们来还原一下错误
func main() { ch:=make(chan int,2) ch<-1 ch<-2 ch<-3}
错误抛出来了,下面我修改一下代码即可解决问题。
ch:=make(chan int,2)go func() { ch<-1 ch<-2 ch<-3}()
why?
因为:chan无缓存时,如果send值则阻塞,chan如果设定缓存大小,则send超过时则阻塞。
阻塞如果放到主进程时则提示deallock死锁,所以需要放到协程处理才行。
总结以上是内存溢出为你收集整理的golang的deadlock成因全部内容,希望文章能够帮你解决golang的deadlock成因所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)