坑
八进制
go 里 0
开头的常量表示八进制,7
以下的十进制与八进制进行位操作,十进制也会被视为八进制
并发读写map
无法 recover
住,会导致程序 panic
后退出。
并发写全局结构体
程序读写一个结构体的过程是怎样的?
是直接将整个结构体载入内存或者赋值吗?
不是的,在读结构体时,其实是将结构体的字段一个个加载入寄存器中的
赋值也是,依次给每个字段赋值。这个过程可以从汇编中观察到:
因此,并发写的情况下就会出现问题
如果是并发 append 切片,就可能会出现写入A协程的底层数组地址、B协程的长度,导致切片中出现空值、甚至越界
Last updated