【问题标题】:How to use locks in Rust?如何在 Rust 中使用锁?
【发布时间】:2013-11-18 07:32:15
【问题描述】:

Rust 中是否存在锁? The manual 简要提及它,但我在标准库中找不到任何实现。如果它们存在,我们如何使用它们?

【问题讨论】:

  • 我猜你指的是9.2.1 Communication between tasks?你想做什么?作为一般规则,由于 Rust 的任务隔离和缺乏数据竞争,您不需要 锁定。
  • 我并不想做任何特别的事情。我只是想知道标准库是否提供了一种方法,如果有,怎么做。

标签: concurrency rust locks


【解决方案1】:

Rust 中的锁主要用于在运行时实现低级别的东西。正如@chris-morgan 所说,您通常不需要锁。通常,在任务之间进行同步的正确方法是传递消息。

如果消息传递不能满足您的需求,ARC 可能会起作用:http://static.rust-lang.org/doc/master/extra/arc/index.html

【讨论】:

    【解决方案2】:

    extra::sync 中有互斥体(和条件变量等),但如果您只需要共享内存,则应该使用 Eric Holk 在extra::arc 中提到的共享内存的高级包装器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 2020-09-22
      • 2011-01-24
      • 1970-01-01
      • 2020-07-29
      相关资源
      最近更新 更多