Designing a Swift library with data-race safety[15] Joseph Heck[16] Heck 是 Automerge Swift[17] 的主要构建者 FatbobmansSwiftWeekly [14] Jesse Squires: https://twitter.com/jesse_squires [15] Designing a Swift library with data-race
这个百分之百并非统计学意义上的,它没有达到编译器希望的那样完美,但只要代码能够编译,内存安全性和data-race freedom就能够保证。
当多个协程同时访问同一块内存区域时,并且存在至少一个协程在进行写操作时,就会发生数据竞争(data-race)。
当不同的 goroutine 并发写不同的索引时,不会发生 data-race。
结构化并发 提议引入了一种定义并发任务的方法,并为函数和闭包提供数据竞争(data-race)安全性。此模型适用于许多常见的设计模式,包括并行映射和并发回调模式,但仅限于处理闭包里捕获的状态。