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


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

相关推荐
geovindu8 小时前
go: Semaphore Pattern
开发语言·后端·设计模式·golang·企业级信号量模式
审判长烧鸡9 小时前
【PHPer转Go】fmt vs log/slog
go·php
dusk_star11 小时前
go语言--笔记--封装、组合(继承)
笔记·golang
漓漾li11 小时前
每日面试题(2026-05-20)- GO AI agent全栈
后端·架构·go
姚不倒12 小时前
Go 语言基础入门:从零到实战,一篇文章掌握核心语法
云原生·golang
XMYX-015 小时前
33 - Go 文本模板 template:从入门到原理深挖
golang·正则表达式
.魚肉17 小时前
Raft 共识算法 · 演示系统(多终端)
算法·go·raft·分布式系统
审判长烧鸡18 小时前
【Go工具】go-playground除了validator还有哪些常用的库
go·web
审判长烧鸡18 小时前
Go 新版核心知识点合集(适配 Go1.18+ 含泛型 + 断言 + 接口 + 指针接收者全套)
go
知彼解己19 小时前
从后端角度理解 AI Agent:理论 + Go 实战(附 MCP 服务器实现)
java·golang·ai编程