小编onx*_*nx2的帖子

当我克隆一个内部有 Arc 的结构时会发生什么?

我想知道当我克隆struct具有 . 内部属性的a 时会发生什么Arc

#[derive(Clone)]
pub struct Foo {
  bar: Arc<String>
}
Run Code Online (Sandbox Code Playgroud)

当我打电话时cloneFoo会发生什么?在线程之间共享Foo结构并使用底层是否安全Arc,或者我应该这样做吗?

#[derive(Clone)]
pub struct Foo
where
    Foo: Sync + Send,
{
    bar: Arc<String>,
}
Run Code Online (Sandbox Code Playgroud)

我本质上只是试图将一堆结构嵌套到一个结构中,这样我就可以更轻松地与不同的事物共享它们。Arc将包装器结构体作为 an并解开属性会更有意义吗?如果有必要,我可以提供更多背景信息,但现在想保持抽象。

我直接在需要的地方使用了所有弧的非分组版本,这也很好但很麻烦。我不太确定如何测试这个......

thread-safety rust automatic-ref-counting

3
推荐指数
1
解决办法
527
查看次数