sync.once 的源码Do方法精简问题

qiushenyang · · 699 次点击
单从执行效率上来说,你的肯定高,但是不具有通用性 多线程肯定不敢这么用 单线程这么用,和 bool 有什么分别呢
#4
更多评论
效果不一样,非执行f()的线程执行的时候,官方的是肯定执行了f(),并且成功了. 你优化的版本,是不管执行是否完成了f() 如果f()里面是初始化一个 公共指针,比如 var a *test, fn()里面执行 a=&test{},官方的能保证不是空指针,而你的不可以
#1
可以试试多线程,测试一下,你就明白了,里面的读写锁是有含义的.
#2