分享
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
环境:go1.7.3 win7 64bit
代码1的执行结果是隔一秒只打印0,不符合预期
```
0
0
0
...
```
把代码1改成代码2,结果就对了
```
353036023
713389754
1073135313
...
```
这是个什么情况,有大佬知道吗
**代码1:**
```
package main
import (
"fmt"
"time"
)
func main() {
i := 0
go func () {
for true {
//隔一秒打印i
time.Sleep(1000000000)
fmt.Println(i)
}
}()
for true {
i++
}
}
```
**代码2:**
```
package main
import (
"fmt"
"time"
)
func main() {
i := 0
go func () {
for true {
i++
}
}()
for true {
//隔一秒打印i
time.Sleep(1000000000)
fmt.Println(i)
}
}
```
有疑问加站长微信联系(非本文作者)
第 1 条附言 ·
已解决这个问题,问题原因是go编译器默认优化了代码,在build的时候添加-gcflags '-N -l'禁用优化就可以了
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1799 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传