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


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

相关推荐
念何架构之路10 小时前
go-grpc设计思想
开发语言·后端·golang
microrain11 小时前
SagooIoT 的缓存换后端只改一行配置,文件后端连 Redis 都不需要
物联网·缓存·golang·sagooiot
喵了几个咪13 小时前
GoWind ShortPlay 深度拆解:三服务 BFF + Core,一条请求的完整工程链路
golang·gowind
用户40158233246214 小时前
对话一长,AI 就忘了你说过的话?Claude Code、Codex、Aider、WES Code 怎么压缩上下文
人工智能·go·ai编程
我的div丢了肿么办19 小时前
go语言抽离路由文件以及对路由进行分组
后端·go
孔令飞20 小时前
【OneX】OneX AI 工具安装、配置及功能介绍
云原生·go·ai编程
小满zs1 天前
Go语言第十四章(文件操作)
后端·go
vipxieliang1 天前
Go 1.24 工具链改进实战:工具依赖管理与 go vet 新分析器
后端·go
程序员爱钓鱼1 天前
Go 编程实战:Benchmark——基准测试、testing.B、benchmem、性能对比与代码优化实战
go·排序算法
紧跟先前的步伐1 天前
Go AI Agent 实战 06|JSON 结构化输出与 Go 后端校验
人工智能·ai·golang