Update 14.6.md

This commit is contained in:
glight2000
2015-12-31 15:44:39 +08:00
committed by glight2000
parent e25f7b12ac
commit 0351c39f67

View File

@@ -1,5 +1,23 @@
# 14.6 协程和recover
一个用到`recover`的程序参见章节13.3)停掉了服务器内部一个失败的协程而不影响其他协程的工作。
```go
func server(workChan <-chan *Work) {
for work := range workChan {
go safelyDo(work) // start the goroutine for that work
}
}
func safelyDo(work *Work) {
defer func {
if err := recover(); err != nil {
log.Printf("Work failed with %s in %v", err, work)
}
}()
do(work)
}
```
## 链接
- [目录](directory.md)