当前冯诺依曼体系下所谓的并行安全,就是那几种模式的,rust也不例外。 据我个人所知,并行只有
- 锁死竞争: 各种锁或原子操作
- 不可变: 共享的都是只读的
- 隔离:没有竞争,也就没有所谓的安全问题了。 其他各种手段也都是这几种基本做法的调优和组合。 针对变成语言提供的所谓线程安全:
- C/C++ 是默认不优先使用任何一种而已。
- Rust只是默认用了 不可变 ,提供了 锁/原子 而已。
- Go和erlang是默认提供 隔离 方式,然后基于隔离又提供了一套通讯机制。 所谓并发语言,也就是提供了优选机制,把此机制用语法糖 好用了而已。
