From 2df6179a14bd660ed590d0b6aff69aae11c24e02 Mon Sep 17 00:00:00 2001 From: songleo Date: Fri, 8 Jan 2016 11:57:46 +0800 Subject: [PATCH] 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(双目运算符,中缀 = 发送) 从通道流出(接收),三种方式: