diff --git a/eBook/14.1.md b/eBook/14.1.md index a88f517..624076d 100644 --- a/eBook/14.1.md +++ b/eBook/14.1.md @@ -12,7 +12,7 @@ 解决之道在于同步不同的线程,对数据加锁,这样同时就只有一个线程可以变更数据。在 Go 的标准库 `sync` 中有一些工具用来在低级别的代码中实现加锁;我们在第 [9.3](9.3.md) 节中讨论过这个问题。不过过去的软件开发经验告诉我们这会带来更高的复杂度,更容易使代码出错以及更低的性能,所以这个经典的方法明显不再适合现代多核/多处理器编程:`thread-per-connection` 模型不够有效。 -Go 更倾向于其他的方式,在诸多比较合适的范式中,有个被称作 `Communicating Sequential Processes(顺序通信处理)`(CSP, C. Hoare 发明的)还有一个叫做 `message passing-model(消息传递)`(已经运用在了其他语言中,比如 Eralng)。 +Go 更倾向于其他的方式,在诸多比较合适的范式中,有个被称作 `Communicating Sequential Processes(顺序通信处理)`(CSP, C. Hoare 发明的)还有一个叫做 `message passing-model(消息传递)`(已经运用在了其他语言中,比如 Erlang)。 在 Go 中,应用程序并发处理的部分被称作 `goroutines(协程)`,它可以进行更有效的并发运算。在协程和操作系统线程之间并无一对一的关系:协程是根据一个或多个线程的可用性,映射(多路复用,执行于)在他们之上的;协程调度器在 Go 运行时很好的完成了这个工作。