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并发插入导致死锁


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

相关推荐
Warson_L6 小时前
高性能架构设计
python·go
我不会起名字3227 小时前
Redis 从 0 到 1(三十七·收官):36 篇浓缩成 1 张知识地图 + 50 项生产 Checklist
redis·go·知识体系·checklist·收官
Mz码不住8 小时前
用 Wails 写一个跨平台进程管理器
go
我不会起名字32212 小时前
消费回调固定 return nil:错误传播与 Kafka 位点提交的区别
后端·mongodb·kafka·go·im·故障排查
孔令飞16 小时前
把 Agent 搬进飞书:飞书 Agent 机器人演示
云原生·go·ai编程
利威尔xu18 小时前
Go map 底层崩溃:3 个 goroutine 并发写同一张 map,fatal error 崩掉整个服务
golang·源码·map·并发·后端开发
码上踩坑1 天前
Claude Code 会话攒太多,我用 Go 写了个本地管理台
go
孔令飞2 天前
企业智能化升级:智能体平台设计和实现
云原生·go·ai编程
vipxieliang2 天前
Go GC 性能优化实践:从 GOGC、GOMEMLIMIT 到分配优化
后端·go
利威尔xu2 天前
2026-11-08-Go-defer-panic-recover面试
面试·golang