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


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

相关推荐
影灵衣丶6 小时前
Go 1.25 实战解读:绿茶 GC 与容器核心数感知(工程影响与落地)
后端·go
一直_在路上6 小时前
突发高流量应对之道:Go语言限流、熔断、降级三板斧
面试·go
程序员爱钓鱼8 小时前
Go语言100个实战案例-项目实战篇:股票行情数据爬虫
后端·go·trae
程序员爱钓鱼1 天前
Go语言实战案例 — 项目实战篇:简易博客系统(支持评论)
前端·后端·go
郭京京2 天前
go框架gin(中)
后端·go
郭京京2 天前
go框架gin(下)
后端·go
一直_在路上2 天前
Go 语言微服务演进路径:从小型项目到企业级架构
架构·go
程序员爱钓鱼2 天前
Go语言实战案例 — 项目实战篇:任务待办清单 Web 应用
后端·google·go
o0o_-_3 天前
【go/gopls/mcp】官方gopls内置mcp server使用
开发语言·后端·golang
lypzcgf3 天前
Coze源码分析-资源库-创建知识库-后端源码-应用/领域/数据访问
后端·go·coze·coze源码分析·智能体平台·ai应用平台·agent平台