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


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

相关推荐
喵了几个咪37 分钟前
GoWind ShortPlay 深度拆解:三服务 BFF + Core,一条请求的完整工程链路
golang·gowind
用户4015823324622 小时前
对话一长,AI 就忘了你说过的话?Claude Code、Codex、Aider、WES Code 怎么压缩上下文
人工智能·go·ai编程
我的div丢了肿么办6 小时前
go语言抽离路由文件以及对路由进行分组
后端·go
孔令飞7 小时前
【OneX】OneX AI 工具安装、配置及功能介绍
云原生·go·ai编程
小满zs9 小时前
Go语言第十四章(文件操作)
后端·go
vipxieliang10 小时前
Go 1.24 工具链改进实战:工具依赖管理与 go vet 新分析器
后端·go
程序员爱钓鱼13 小时前
Go 编程实战:Benchmark——基准测试、testing.B、benchmem、性能对比与代码优化实战
go·排序算法
紧跟先前的步伐21 小时前
Go AI Agent 实战 06|JSON 结构化输出与 Go 后端校验
人工智能·ai·golang
Thinker QAQ1 天前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing
喵个咪1 天前
GoWind Kanban 拆解:看板拖拽背后——LexoRank、乐观锁与尽力而为广播
后端·架构·go