17-线程安全的特征
8.5.2 线程安全的特征
线程安全的想法是,如果你有来自多个线程的数据,那么对该值的任何读取或写入操作都不会导致不一致的结果,即使是像a+=1这样简单的增量操作。更新值的问题在于它会大致转换为3步——加载(load)、增量(increment)及存储(store)。数据可以安全地被更新意味着它们是包装在安全类型(例如Arc和Mutex)中的,以确保在程序中数据保持一致性。
在Rust中,你可以获得在线程中安全使用和引用类型的编译期保证。这些保证被实现为特征,即Send和Sync特征。