From abb36a01a498895610d014639d698ab90cf39dd1 Mon Sep 17 00:00:00 2001 From: glight2000 <173959153@qq.com> Date: Tue, 29 Dec 2015 23:02:38 +0800 Subject: [PATCH] Update 14.4.md --- eBook/14.4.md | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/eBook/14.4.md b/eBook/14.4.md index 01180d5..17b309a 100644 --- a/eBook/14.4.md +++ b/eBook/14.4.md @@ -114,7 +114,29 @@ Received on channel 1: 94348 练习14.10:[polar_to_cartesian.go](exercises/chapter_14/polar_to_cartesian.go) -(这是一种综合练习,使用到章节4,9,11的内容和本章内容。) +(这是一种综合练习,使用到章节4,9,11的内容和本章内容。)写一个可交互的控制台程序,要求用户输入二位平面极坐标上的点(半径和角度(度))。计算对应的笛卡尔坐标系的点的x和y并输出。使用极坐标和笛卡尔坐标的结构体。 + +使用通道和协程: + `channel1`用来接收极坐标 + `channel2`用来接收笛卡尔坐标 + +转换过程需要在协程中进行,从channel1中读取然后发哦送到channel2。实际上做这种计算不提倡使用协程和通道,但是如果运算量很大很耗时,这种方案设计就非常合适了。 + + +练习14.11: [concurrent_pi.go](exercises/chapter_14/concurrent_pi.go) / [concurrent_pi2.go](exercises/chapter_14/concurrent_pi2.go) + +使用以下序列在协程中计算pi:开启一个协程来计算公式中的每一项并将结果放入通道,`main()`函数收集并累加结果,打印出pi的近似值。 + +![](../images/14.4_piseries.png?raw=true) + +计算执行时间(参见章节[6.11](6.11.md)) + +再次声明这只是为了一边练习协程的概念一边找点乐子。 + +如果你需要的话可使用`math.pi`中的Pi;而且不使用协程会运算的更快。一个急速版本:使用`GOMAXPROCS`,开启和`GOMAXPROCS`同样多个协程。 + +习惯用法:后台服务模式 + ## 链接