From 0fd111da36919c504a2ea881ef6e73d5ab3e969b Mon Sep 17 00:00:00 2001 From: songleo Date: Fri, 8 Jan 2016 10:20:23 +0800 Subject: [PATCH 1/2] review chapter 14 --- eBook/14.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eBook/14.1.md b/eBook/14.1.md index c37e41e..ca79fb3 100644 --- a/eBook/14.1.md +++ b/eBook/14.1.md @@ -58,7 +58,7 @@ Go 的并发原语提供了良好的并发设计基础:表达程序结构以 请看 [goroutine_select2.go](examples/chapter_14/goroutine_select2.go) -总结:GOMAXPROCS 等同于(并发的)线程数凉,在一台核心数多于1个的机器上,会尽可能有等同于核心数的线程在并行运行。 +总结:GOMAXPROCS 等同于(并发的)线程数量,在一台核心数多于1个的机器上,会尽可能有等同于核心数的线程在并行运行。 ## 14.1.4 如何用命令行指定使用的核心数量 From 2df6179a14bd660ed590d0b6aff69aae11c24e02 Mon Sep 17 00:00:00 2001 From: songleo Date: Fri, 8 Jan 2016 11:57:46 +0800 Subject: [PATCH 2/2] review --- eBook/14.1.md | 4 ++-- eBook/14.2.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eBook/14.1.md b/eBook/14.1.md index ca79fb3..a88f517 100644 --- a/eBook/14.1.md +++ b/eBook/14.1.md @@ -125,7 +125,7 @@ At the end of main() // after 10s 当 `main()` 函数返回的时候,程序退出:它不会等待任何其他非 main 协程的结束。这就是为什么在服务器程序中,每一个请求都会启动一个协程来处理,`server()` 函数必须保持运行状态。通常使用一个无限循环来达到这样的目的。 -另外,协程是独立的处理单元,一旦陆续启动一些协程,你无法确定他们是什么时候真正开始执行的。你的代码罗技必须具独立于协程调用的顺序。 +另外,协程是独立的处理单元,一旦陆续启动一些协程,你无法确定他们是什么时候真正开始执行的。你的代码逻辑必须独立于协程调用的顺序。 为了对比使用一个线程,连续调用的情况,移除 go 关键字,重新运行程序。 @@ -149,7 +149,7 @@ At the end of main() // after 17 s (译者注:标题中的“Go协程(goroutines)” 即是 14 章讲的协程指的是 Go 语言中的协程。而“协程(coroutines)”指的是其他语言中的协程概念,仅在本节出现。) -在其他语言中,比如 C#,Lua 或者 Python 都有协程的概念。这个名字表明它和 G o协程有些相似,不过有两点不同: +在其他语言中,比如 C#,Lua 或者 Python 都有协程的概念。这个名字表明它和 Go协程有些相似,不过有两点不同: - Go 协程意味着并行(或者可以以并行的方式部署),协程一般来说不是这样的 - Go 协程通过通道来通信;协程通过让出和恢复操作来通信 diff --git a/eBook/14.2.md b/eBook/14.2.md index 464b527..1f4f17e 100644 --- a/eBook/14.2.md +++ b/eBook/14.2.md @@ -16,7 +16,7 @@ 未初始化的通道的值是nil。 -所以通道稚嫩传输一种类型的数据,比如 `chan int` 或者 `chan string`,所有的类型都可以用于通道,空接口 `interface{}` 也可以。甚至可以(有时非常有用)创建通道的通道。 +所以通道只能传输一种类型的数据,比如 `chan int` 或者 `chan string`,所有的类型都可以用于通道,空接口 `interface{}` 也可以。甚至可以(有时非常有用)创建通道的通道。 通道实际上是类型化消息的队列:使数据得以传输。它是先进先出(FIFO)结构的所以可以保证发送给他们的元素的顺序(有些人知道,通道可以比作 Unix shells 中的双向管道(tw-way pipe))。通道也是引用类型,所以我们使用 `make()` 函数来给它分配内存。这里先声明了一个字符串通道 ch1,然后创建了它(实例化): @@ -39,7 +39,7 @@ ch1 = make(chan string) 流向通道(发送) -`ch <- int1` 表示:用通道 ch 发送变量 int1(二进制操作符,中缀 = 发送) +`ch <- int1` 表示:用通道 ch 发送变量 int1(双目运算符,中缀 = 发送) 从通道流出(接收),三种方式: