初级会员
  • 第 47109 位会员
  • guonaihong
  • guonaihong
  • 2020-01-06 15:12:36
  • Offline
  • 21 94

最近发布的主题

    暂无

最近分享的资源

    暂无

最近发布的项目

最近的评论

  • 修个小错, 对于“[]byte和string其实内部的存储结构都是一样的.” --> 其实他们是不一样的. []byte是string的超集(内部结构), 所以可以强转成string ``` type StringHeader struct { Data uintptr Len int } ``` ``` type SliceHeader struct { Data uintptr Len int Cap int } ``` 强转的原则, B>=A(这里指内存布局大小, 并且内存部署相似), 就可以强转B->A
  • 楼上正解。11行里面的e不是ascii码里面的e,只是长的一样罢了。
  • 评论了博文 Go 中的内联优化
    感谢@lxbwolf 提了go里面的内联优化的概念,想问几个问题。 1.go的内联操作对于函数有大小的限制吗? 2.go对方法(成员函数,非普通函数) 是否可以内联优化? 3.有无关键字建议编译器做内联优化,比如c里面有inline可以建议编译器做内联优化。
  • @crud-bird go标准库也是用的双检查结构,为什么用原子变量做?我猜是为了,在任何硬件(x86/arm/misp)陈诺不出问题。
  • 你修改之后 o.done = 1是锁住的区域赋值的, if o.done==1没加锁读, 这里就有数据竞争的问题。除非用lock把你读的地方包裹下。好了,你现在得到的代码才是每次都能正确处理的实现。 对于这种代码,如果想优化,把锁的颗粒度变小,可以atomic把done的地方改改,最后发现,我c 这不就是标准库的写法吗。。。