golang 内存对齐问题
func (wg *WaitGroup) state() (statep *uint64, semap *uint32) { if uintptr(unsafe.Pointer(&wg.state1))%8 == 0 { // 如果地址是 64bit 对齐的,数组前两个元素做 state ,后一个元素做信号量 return (*uint64)(unsafe.Pointer(&wg.state1)), &wg.state1[2] } else { // 如果地址是 32bit 对齐的,数组后两个元素用来做 state ,它可以用来做 64bit 的原子操作,第一个元素 32bit 用来做信号量 return (*uint64)(unsafe.Pointer(&wg.state1[1])), &wg.state1[0] } } 这是我看的一篇文章 https://www.luozhiyun.com/archives/429
这块是代码在 64 和 32 位下处理内存的技巧,但是我对这个还是似懂非懂。所以想问下该如何理解。

