入门第 13 / 20 节40 分钟 · 实操
协程(goroutines)与通道(channels)
Go 课程的一部分
你的程序要下载二十个文件。按最普通的写法,它下载第一个,等着,再下载第二个,再等着,如此往复。这段时间里几乎全部都在干等,等一个比处理器慢上几百万倍的网络。如果这些等待能重叠起来,活儿早就干完了,快二十倍。
同时做好几件事,是编程里最古老的难题,大多数语言都让这件事实实在在地难。Go 是围绕它设计的,而这一课正是这一点体现得最明显的地方。你会拿到两个概念。协程(goroutine)是你程序中与其余部分并行跑着的一段代码。通道(channel)是一根管子,把值从一个协程安全地交给另一个协程,而你完全不用去安排任何加锁。
想在真实环境里学习 Go 协程(goroutines)与通道(channels) 吗?
点击下方,立即获得一台预装 Go 的 Linux 主机,跟懂你代码的 AI 导师一起完成 协程(goroutines)与通道(channels) 的实操练习。
开始这节课协程(goroutines)与通道(channels)你将学到什么
- The go keyword
- Goroutine lifetime
- Unbuffered channels
- Buffered channels
- Send and receive
- Range over channel
- Close a channel
