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