goroutine使用中func内变量问题

acidsweet 2015-09-07 12:45:43
各位大神,我写了一个测试服务器性能的小程序,程序的主体大概是:
var c chan int

func test() {
starttime := time.Now().Nanosecond()
resp,_:= http.Get(myUrl)
end_time := time.Now().Nanosecond()
c <- ((end_time - start_time)/1000000)
}
func main()
{
c = make(chan int)
for i := 0; i < 20; i++ {
go test()
}
for i := 0; i < 20; i++ {
fmt.Println(<-c)
}

}

理论来说打印的值应该是正的,可是在我比如说循环500次的时候,后半部的值就全变成负的,不解啊。

协程里面的局部变量难道还共享吗?
...全文
850 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
好大一只蜗牛 2015-09-28
  • 打赏
  • 举报
回复
starttime := time.Now().Nanosecond() 改为 start_time := time.Now().UnixNano()
pathletboy 2015-09-11
  • 打赏
  • 举报
回复
Nanosecond returns the nanosecond offset within the second specified by t, in the range [0, 999999999].

2,190

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧