Goroutine

Go语言的栈空间管理

<p>在CloudFlare,我们使用Go语言搭建各种服务和应用。在这篇博文里,我们将对Go语言的技术特点进行深度分析。Go语言里最重要的一个特性就是goroutine。它们的开销比较小,相互协作地调度线程来运行。它们有广泛的用途,比如实现超时控制(timeouts),生成器(generators),以及在多个后台应用之间实现相互竞争(racing)。为了使goroutine能够适应更多的任务,我们必须保证每个goroutine占用很少的内存。同时,人们应该可以很方便地创建goroutine。<

Goroutine是如何工作的?

<h2 id="go语言">Go语言</h2> <p>如果你刚刚接触Go语言,或者说你并不理解“并发不等于并行”这句话的含义,那么Rob Pike的<a href="http://www.youtube.com/watch?v=cN_DpYBzKso" target="_blank" rel="noopener">讲座</a>值得一看(在youtube上)。这个视频有30分钟长,我保证花30分钟看这段视频是非常值得的。</p> <p></p> <p>这里摘录一段他提到的并发和并行之间的区别