Golang 并发
Goroutine 基础
什么是 goroutine?
Goroutine 是 Go 运行时管理的轻量级线程,通过 go 关键字启动。单个 goroutine 栈初始只有 2KB,按需扩展,可以创建数百万个。
goroutine 和系统线程区别?
- 系统线程由 OS 调度,栈默认 1-8MB
- Goroutine 由 Go runtime 调度(GMP 模型),栈 2KB 起
- Goroutine 切换开销远低于系统线程
Channel
无缓冲 channel 的行为?
发送方和接收方必须同时就绪才能完成通信,否则发送/接收阻塞。本质是同步原语。
评论
使用 GitHub 账号即可参与加载较慢?可 直接前往 GitHub Discussions 查看与参与。