The Go Memory Model

The Go Memory Order      使用过Go语言或者听说过Go的都知道Go号称天生在并发编程上具有先天优势,其实会让人好奇他的先天优势来源哪里呢? 按照官方解释或者目前大多数人的认识来说呢应该是Go语言层面提供了一个并发执行体Goroutine,很多人把这个叫go协程,原因是因为它的创建执行消耗的计算资源非常轻量,和协程coroutine长得很像。但是在了解了Go的调度模型后,我个人感觉Goroutine的运行模式本质上更像是线程池的模型。当然这篇文章要写的主要是Go的内存模型,但是内存模型和Go的并发密切相关。因为讲到并发,很多人的第一反应就是并发安全问题,讲到并发安全就离不开数据同步,所以这篇文章的目的是根据Go官方提供的一篇文章 The Go Memory...
Read More