Open peanut996 opened 1 year ago
https://peanut996.cn/study-go/
不要通过共享内存来通信,而应通过通信来共享内存。 数组与切片的不同之处在于数组是带有长度的切片 Goroutine 没有任何同步事件,因此它无法保证被其它任何Go程检测到。 实际上,一个积极的编译器可能会删除整条 go 语句。若一个Go程的作用必须被另一个Go程监测到,需使用锁或信道通信之类的同步机制来建立顺序关系。 信道通讯 信道上的发送操作总在对应的接收操作完成前发生。 若在信道关闭后从中接收数据,接收者就会收到该信道返回的零值。 从无缓冲信道进行的接收,要发生在对该信道进行的发送完成之前。
https://peanut996.cn/study-go/
不要通过共享内存来通信,而应通过通信来共享内存。 数组与切片的不同之处在于数组是带有长度的切片 Goroutine 没有任何同步事件,因此它无法保证被其它任何Go程检测到。 实际上,一个积极的编译器可能会删除整条 go 语句。若一个Go程的作用必须被另一个Go程监测到,需使用锁或信道通信之类的同步机制来建立顺序关系。 信道通讯 信道上的发送操作总在对应的接收操作完成前发生。 若在信道关闭后从中接收数据,接收者就会收到该信道返回的零值。 从无缓冲信道进行的接收,要发生在对该信道进行的发送完成之前。