摘要: Goroutine 是用户态自己实现的线程,调度方式遇到IO/阻塞点方式就会让出cpu时间(其实也看编译器的实现,如果TA在代码里面插入一些yield,也是可以的。 反正现在不是抢占式的。) 不能设置goroutine ID, 也拿不到(可以调用C API或者自己修改源码暴漏出来,实际上修改起来挺简 阅读全文
posted @ 2019-01-18 11:01 small_lei_it 阅读(262) 评论(0) 推荐(0) 编辑
摘要: // 写超时警告日志 通用方法 func TimeoutWarning(tag, detailed string, start time.Time, timeLimit float64) { dis := time.Now().Sub(start).Seconds() if dis > timeLi 阅读全文
posted @ 2019-01-18 10:25 small_lei_it 阅读(3508) 评论(0) 推荐(0) 编辑
摘要: package main import ( "context" "fmt" "time" ) func longtimeCostFunc(ctx context.Context, c chan <- int) { for i := 0; i < 10; i++ { select{ case <-ct 阅读全文
posted @ 2019-01-18 09:48 small_lei_it 阅读(963) 评论(0) 推荐(0) 编辑