goroutine
goroutine是golang中的并发执行单元,是一种轻量级的线程(或称为协程),用于并发执行函数或方法。每个goroutine都有自己的调用栈,并独立地运行于其他goroutine之间,由Go运行时系统进行管理和调度。
创建一个新的goroutine非常简单,只需要在函数或方法前面加上关键字"go"即可。
通过使用goroutine,我们可以在程序中轻松地实现并发处理任务,提高程序的并发性和响应能力。
chan
Do not communicate by sharing memory; instead, share memory by communicating.
“不要以共享内存的方式来通信,相反,要通过通信来共享内存。”
基于CSP并发模型golang设计了channel这种数据结构来实现goroutine之间的数据传输和同步。
rw := make(chan int) // 可读可写channel
var r