![image.png](https://static.studygolang.com/200715/8b473bf59083eaade2019ce5597765df.png)
这是源码
![image.png](https://static.studygolang.com/200715/736d526241cd54202a4dc7ba53e73de9.png)
这是我改的
不知道我这么改的有什么问题,但是经过我的测试实际是执行了一次呀 ,达到了同样的效果
更多评论
效果不一样,非执行f()的线程执行的时候,官方的是肯定执行了f(),并且成功了.
你优化的版本,是不管执行是否完成了f()
如果f()里面是初始化一个 公共指针,比如 var a *test, fn()里面执行 a=&test{},官方的能保证不是空指针,而你的不可以
#1