大家对于golang10以及11中对timer.reset的非线程安全抛出怎么看?

mlzhou · 2018-09-01 10:02:31 · 1343 次点击

求置顶,求解决!不然没法升级。

#1
更多评论

超时一般不是这么写么

    select {
        case t:=<-c:
            // do something
        case <-time.After(time.Second*10):
            // time out
    }

你这个怎么是用timer来做的?t.Reset 无论哪个版本都是非线程安全的。

#2

这样写会增加gc压力,前面版本虽然非线程安全,但是不会抛出异常,跑了几年了,问题不大。

#3