Update 14.1.md

This commit is contained in:
glight2000
2015-12-23 17:37:53 +08:00
parent 5882bf32af
commit de9a7c7f5d

View File

@@ -37,7 +37,15 @@ Go更倾向于其他的方式在诸多比较合适的范式中有个被称
## 14.1.2 并发和并行的差异
Go的并发原语提供了良好的并发设计基础
Go的并发原语提供了良好的并发设计基础表达程序结构以便表示独立地执行的动作所以Go的的重点不在于并行的首要位置并发程序可能是并行的也可能不是。并行是一种通过使用多处理器以提高速度的能力。但往往是一个设计良好的并发程序在并行方面的表现也非常出色。
在当前的运行时2012年一月实现中Go默认没有并行指令只有一个独立的核心或处理器被专门用于Go程序不论它启动了多少个协程所以这些协程是并发运行的但他们不是并行运行的同一时间只有一个协程会处在运行状态。
这个情况在以后可能会发生改变,不过届时,为了使你的程序可以使用多个核心运行,这时协程就真正的是并行运行了,你必须使用`GOMAXPROCS`变量。
这会告诉运行时有多少个协程同时执行。
并且只有gc编译器真正实现了协程适当的把协程映射到操作系统线程。使用`gccgo`编译器,会为每一个协程创建操作系统线程。
## 链接