ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

万物皆可多线程?深入解读 Rust 的 Send 和 Sync

万物皆可多线程?深入解读 Rust 的 Send 和 Sync 坦率地说,目前大多数介绍 Send / Sync 的文章都有些“隔靴搔痒”的感觉,它们确实介绍了这两个 Trait 但读完之后又感觉好像什么也没说。Send / Sync 只是两个标记特质(Marker Trait),没有任何关联方法,它们唯一的用途是出现在约束里,让编译器做类型检查。只需寥寥数语,Send / Sync 就解释完了,但这也正是它们最难理解的地方,很多人都对这两个 Trait 的由来和作用感到困惑,要完全理解它们既需要对 Rust 的所有权和借用检查有深刻的认识,又需要一个与线程安全相关的“上下文”。本文,我们会带领大家把 Send / Sync 这两个 Trait 彻底搞明白。此外,推荐本博客近期讨论 Rust 多线程的精华文章:《无为而治,Rust 多线程的处世哲学》、《Rust 所有权进阶必读:为什么 Rc 共享所有权是个伪概念?》、《Rust 语言特性:多线程和并发编程》1
返回列表