```package main
import (
"time"
)
func main() {
t := time.NewTimer(100 * time.Hour)
for i := 0; i < 8; i++ {
go func() {
for {
t.Reset(100 * time.Hour)
}
}()
}
select {}
}```
在实际应用中,收包通过chan控制,但都需要加定时来控制写入超时,如果timer.reset还需要加锁来处理的话,那么chan就相当于是摆设了。
开多个线程Reset一样的,golang1.9.7表示毫无压力
```
for i :=0; i< 10; i++ {
go func() {
for {
tIns.PushData(1)
}
}()
}
```
#5
更多评论
超时一般不是这么写么
```golang
select {
case t:=<-c:
// do something
case <-time.After(time.Second*10):
// time out
}
```
你这个怎么是用timer来做的?t.Reset 无论哪个版本都是非线程安全的。
#2