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