2022年1月21日

go 协程之WaitGroup超时控制

摘要: package main import ( "fmt" "sync" "time" ) // 调用示例 func main() { var w = sync.WaitGroup{} var ch = make(chan bool) w.Add(2) go func() { time.Sleep(ti 阅读全文

posted @ 2022-01-21 15:25 running-fly 阅读(406) 评论(0) 推荐(0) 编辑

Go多协程并发环境下的错误处理

摘要: 引言 在Go语言中,我们通常会用到panic和recover来抛出错误和捕获错误,这一对操作在单协程环境下我们正常用就好了,并不会踩到什么坑。但是在多协程并发环境下,我们常常会碰到以下两个问题。假设我们现在有2个协程,我们叫它们协程A和B好了: 如果协程A发生了panic,协程B是否会因为协程A的p 阅读全文

posted @ 2022-01-21 15:17 running-fly 阅读(432) 评论(0) 推荐(0) 编辑

go 协程控制之context.WithTimeout的使用

摘要: 简言 1. context包的WithTimeout()函数接受一个 Context 和超时时间作为参数,返回其子Context和取消函数cancel 2. 新创建协程中传入子Context做参数,且需监控子Context的Done通道,若收到消息,则退出 3. 需要新协程结束时,在外面调用 can 阅读全文

posted @ 2022-01-21 10:21 running-fly 阅读(1104) 评论(0) 推荐(0) 编辑

导航