diff --git a/src/ch16-00-concurrency.md b/src/ch16-00-concurrency.md index 3210fab..ef3c799 100644 --- a/src/ch16-00-concurrency.md +++ b/src/ch16-00-concurrency.md @@ -7,7 +7,7 @@ 起初,Rust 团队认为确保内存安全和防止并发问题是两个分别需要不同方法应对的挑战。随着时间的推移,团队发现所有权和类型系统是一系列解决内存安全**和**并发问题的强有力的工具!通过利用所有权和类型检查,在 Rust 中很多并发错误都是**编译时**错误,而非运行时错误。因此,相比花费大量时间尝试重现运行时并发 bug 出现的特定情况,不正确的代码会直接编译失败并提供解释问题的错误信息。因此,你可以在开发时修复代码,而不是在部署到生产环境后修复代码。我们给 Rust 的这一部分起了一个绰号**无畏并发**(_fearless concurrency_)。无畏并发令你的代码免于出现诡异的 bug 并可以轻松重构且无需担心会引入新的 bug。 -> 注意:出于简洁的考虑,我们将很多问题归类为**并发**,而不是更准确的区分**并发和和/或并行**。对于本章,当我们谈到**并发**时,请自行脑内替换为 **并发和和/或并行**。在下一章中当区分二者更为重要时,我们会使用更准确的表述。 +> 注意:出于简洁的考虑,我们将很多问题归类为**并发**,而不是更准确的区分**并发和/或并行**。对于本章,当我们谈到**并发**时,请自行脑内替换为 **并发和/或并行**。在下一章中当区分二者更为重要时,我们会使用更准确的表述。 很多语言所提供的处理并发问题的解决方法都非常固有。例如,Erlang 有着优雅的消息传递(message-passing)并发功能,但只有模糊不清的在线程间共享状态的方法。对于高级语言来说,只实现可能解决方案的子集是一个合理的策略,因为高级语言所许诺的价值来源于牺牲一些控制来换取抽象。然而对于底层语言则期望提供在任何给定的情况下有着最高的性能且对硬件有更少的抽象。因此,Rust 提供了多种工具,以符合实际情况和需求的方式来为问题建模。