multithreading - 这种解决竞争状况的解决方案是什么?

标签 multithreading thread-safety race-condition

我已经看过以前使用过的这种模式,但是我想不起来用来描述它的术语(因此,我无法通过Google搜索它来了解更多信息):

基本上,这里是您拥有由多个线程使用的资源的地方,但是该资源具有自己的“队列”,并且每个进程都“发布”一个资源,而不是锁定对该资源的访问,提交事务,然后解锁访问。在该资源对其队列上执行的功能。然后,资源将按照发布的顺序进行遍历并执行每个功能,以确保其状态永不损坏。

最佳答案

我认为可以在这里使用的最具体的术语是 Actor 。我认为 Actor 是“线程”(或类似线程的进程),即...

  • ... alive:它可以独立于其他 Actor
  • 行动
  • ...具有状态:它可以存储数据并确保正确的访问。

  • 这种参与者的实现通常是一个正在处理消息同步队列的线程。

    仅仅称这种“同步”是正确的,但没有明确说明。

    关于multithreading - 这种解决竞争状况的解决方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9358127/

    相关文章:

    ios - Swift 3-从主线程更新 UI

    rest - 如何在 RavenDB 中实现文档的原子并发读取?

    multithreading - 如何在没有竞争条件的情况下在 Erlang 中按需启动 gen_server 或 gen_fsm?

    python - DFS 的 Cython 并行化竞争条件

    c# - 只读字典 - 多线程调用 .ContainsKey 方法

    java - 任何计算机(多核或单核)都可以同时运行多个线程吗

    c - 在 OpenMP 中启动多少个线程?

    Ruby 1.9.3-p140 - 使用线程 - 如何等待所有结果从线程中出来?

    c# - 加入线程时是否需要内存屏障?

    java - 多个线程从不同实例访问实例方法会导致竞争条件吗?