Update 14.4.md

This commit is contained in:
glight2000
2015-12-29 23:02:38 +08:00
parent 783ad046b9
commit abb36a01a4

View File

@@ -114,7 +114,29 @@ Received on channel 1: 94348
练习14.10[polar_to_cartesian.go](exercises/chapter_14/polar_to_cartesian.go) 练习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`同样多个协程。
习惯用法:后台服务模式
## 链接 ## 链接