fatal error: all goroutines are asleep - deadlock!

go 复制代码
func main() {

	var taskChannle =make(chan int)

	taskChannle <- 1

	fmt.Println(<-taskChannle)

channel初始化时没有指定缓冲的话,默认是没有缓冲的。也就是说往channel中send数据是一个阻塞操作,直到Channle有读取操作。

所以当代码执行到taskChannle <- 1时就产生了阻塞,不会往下走,所以go就认为all goroutines are asleep - deadlock!

将代码改成如下:

go 复制代码
func main() {

	var taskChannle =make(chan int)

	go func() {
		fmt.Println(<-taskChannle)
	}()
	
	taskChannle <- 1

就不会产生死锁,或者声明带缓冲的channel

推荐阅读

1、原来阿里字节员工简历长这样

2、一条SQL差点引发离职

3、MySQL并发插入导致死锁


如果你也觉得我的分享有价值,记得点赞或者收藏哦!你的鼓励与支持,会让我更有动力写出更好的文章哦!

相关推荐
回到原点的码农9 分钟前
GO 快速升级Go版本
开发语言·redis·golang
少林码僧19 分钟前
1.1 一个架构师竟然这样设计通知平台,解决了所有业务方的痛点!
go
ん贤24 分钟前
AI 大模型落地系列|Eino ADK体系篇:你对 ChatModelAgent 有了解吗?
人工智能·golang·eino·chatmodelagent
少林码僧24 分钟前
1.2 太震撼了!多渠道消息适配只用一个设计模式就搞定了?
go
迷藏49443 分钟前
**发散创新:Go语言中基于上下文的优雅错误处理机制设计与实战**在现代后端开发中,**错误处理**早已不是简单
java·开发语言·后端·python·golang
weixin_449290012 小时前
Python vs Go:优缺点对比
网络·python·golang
亿牛云爬虫专家2 小时前
Go Colly框架高阶技巧:如何在中间件中无缝切换代理IP
tcp/ip·中间件·golang·爬虫代理·代理ip·snippet·go colly
二妹的三爷2 小时前
【Golang】——Gin 框架中的表单处理与数据绑定
microsoft·golang·gin
yuanlaile2 小时前
想转后端,java和go学哪个更好?
java·开发语言·golang
人间打气筒(Ada)14 小时前
go实战案例:如何通过 Service Meh 实现熔断和限流
java·开发语言·golang·web·istio·service mesh·熔断限流