我正在学习 goroutines 和通道,并且有一个问题,即如果多个 goroutine 尝试从同一通道获取数据会发生什么。
Go 运行时如何确保由多个 goroutine 读取的通道中的数据仅提供给在通道上等待的一个 goroutine,而不会复制或发送到多个 goroutine。
当有多个 goroutine 尝试从完全相同的通道获取数据时,go 运行时是否会阻止争用条件?是否有某种排序,例如先到先得的数据是哪个等待的goroutines?
慕容森
MYYA
相关分类