Open chenyahui opened 3 years ago
~Great. 支持一下,希望多多发文讲解下其他的包/数据结构
@2014BDuck ~Great. 支持一下,希望多多发文讲解下其他的包/数据结构
可以~ 有没有什么想要了解的包?
@chenyahui
@2014BDuck ~Great. 支持一下,希望多多发文讲解下其他的包/数据结构
可以~ 有没有什么想要了解的包?
没~写了都会看
@2014BDuck
@chenyahui
@2014BDuck ~Great. 支持一下,希望多多发文讲解下其他的包/数据结构
可以~ 有没有什么想要了解的包?
没~写了都会看
哈哈,感谢支持~
有些文章会讲到,WaitGroup 两种不同的内存布局方式是 32 位系统和 64 位系统的区别,这其实不太严谨。准确的说法是 32 位对齐和 64 位对齐的区别。因为在 32 位系统下,state1 变量也有可能恰好符合 64 位对齐。
很赞,困惑许久的问题,这里只看wg当前的字节对齐情况,来满足64位对齐的要求
@fivezh
有些文章会讲到,WaitGroup 两种不同的内存布局方式是 32 位系统和 64 位系统的区别,这其实不太严谨。准确的说法是 32 位对齐和 64 位对齐的区别。因为在 32 位系统下,state1 变量也有可能恰好符合 64 位对齐。
很赞,困惑许久的问题,这里只看wg当前的字节对齐情况,来满足64位对齐的要求
- 64位系统均满足8字节对齐,8字节state+4字节sema
- 32位系统一定概率满足8字节对齐,同上
- 32位系统一定概率不满足8字节对齐时,sema前置4字节,来保证后面的state满足8字节对齐
总结的非常好 ~
@chenyahui
@2014BDuck ~Great. 支持一下,希望多多发文讲解下其他的包/数据结构
可以~ 有没有什么想要了解的包?
大佬,分析下reflect包呗
@xuanskyer
@chenyahui
@2014BDuck ~Great. 支持一下,希望多多发文讲解下其他的包/数据结构
可以~ 有没有什么想要了解的包?
大佬,分析下reflect包呗
简单来说就是golang基于它的runtime,可以管理所有对象的元信息。拿到对象的元信息这个过程就是反射了,我会记下,之后应该会写篇文章讨论下~
@chenyahui
@2014BDuck ~Great. 支持一下,希望多多发文讲解下其他的包/数据结构
可以~ 有没有什么想要了解的包?
大佬可以分析一下 context 包吗
@lotusgrm
@chenyahui
@2014BDuck ~Great. 支持一下,希望多多发文讲解下其他的包/数据结构
可以~ 有没有什么想要了解的包?
大佬可以分析一下 context 包吗
可以~ 我先记下~
图上waiter和counter标示反了
@RayleBool 图上waiter和counter标示反了
的确是写错了,非常感谢反馈!图里面和文章里面的错误都已经修改了
分析下 锁的底层、channel 条件变量 gmp gc这块吧
count和wait的位置错了吧,count应该在wait的前面 64位 states的位置应该是 count+waiter+sema 32位应该是seama+count+waiter
https://www.cyhone.com/articles/golang-waitgroup/
sync.WaitGroup 是 Golang 中常用的并发措施,我们可以用它来等待一批 Goroutine 结束。 WaitGroup 的源码也非常简短,抛去注释外也就 100 行左右的代码。但即使是这 100 行代码,里面也有着关乎内存优化、并发安全考虑等各种性能优化手段。 本文将基于 go-1.13 的源码 进行分析,将会涉及以下知识点: WaitGroup 的实现逻辑 WaitGroup