在8.4节中,我们了解了编译器是如何阻止我们共享数据的。如果子线程可变地访问数据,那么它们会被移动,因为Rust不允许在父线程中使用它们,而子线程可能会释放它们,导致线程中的指针挂起继而取消引用。让我们来探讨线程安全的概念,以及Rust的类型系统是如何实现这一点的。