练习
- 使用缓冲通道实现一个并发版本的 。
- 接着,使用共享内存实现一个并发版本的
wx(1)
。 - 最后,使用监视 goroutine 实现一个并发版本的
wx(1)
。 - 当
workerPool.go
的size
全局变量为1
时会发生什么?为什么? - 修改
workerPool.go
的源码来实现wc(1)
支持命令行功能。 - 修改 的源码来实现
clients
和data
缓冲通道的大小可以通过命令行参数来定义。 - 修改
simpleContext.go
源码,把在f1()
,f2()
,f3()
中使用的匿名函数改为一个单独的函数。这个改动的难点是什么? - 修改
simpleContext.go
的源码,让 ,f2()
,f3()
函数使用外部创建的Context
变量而不是它们自己的。 - 修改
useContext.go
源码,使用context.WithDeadline()
或者context.WithCancel()
来代替context.WithTimeout()
。