首页 文章

“别名”对于“同步”特征意味着什么?

提问于
浏览
4

我正在学习Rust,试图找出 std::marker::Sync 特性 . Sync 的文档从以下(版本1.1)开始,强调我的:

别名时可以在线程之间安全共享的类型 . 精确的定义是:如果&T是线程安全的,则类型T是同步 . 换句话说,在线程之间传递&T引用时不存在数据争用的可能性 . 正如人们所料,像u8和f64这样的原始类型都是Sync,包含它们的简单聚合类型(如元组,结构和枚举)也是如此 . ...

从第一句话开始,这对我来说毫无意义 . 我认为别名与以下语句有关:

type Name = String;

这与同步有什么关系?也许术语“别名”在这里被重载,我错过了第二个含义,但我在文档中的任何地方都找不到第二种别名 .

有人能指出我正确的方向吗?

1 回答

  • 4

    如果存在多个别名,则称该值为别名 . 别名只是一个名字 .

    在这段代码中:

    let s1: String = "hello".into();
    let s2: &String = &s1;
    

    s1s2 是相同 String 值的别名;因此, String 是别名 .

相关问题