问题标签 [mutual-exclusion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
101 浏览

locking - 不涉及两个进程的互斥

我有一个独特的问题。有两个进程(P0 和 P1)试图访问一个文件。P0 正在向文件写入信息,P1 正在读取信息。在 P0 完成写入之前 P1 正在读取的两者之间发生竞争条件。我考虑过使用锁、信号量等。但是,P1 存在于一组我不允许以任何方式更改的代码中,并且它目前没有实现来支持上述建议的修复。

有没有办法在不触及两组代码的情况下消除这种竞争条件?

0 投票
1 回答
487 浏览

c++ - C中许多进程的文件打开问题

我正在使用 c++ 工作。我在运行应用程序时遇到问题,其中包含我的 dll,我的 dll 代码适用于应用程序(需要的进程)。我在所有函数中使用 fopen 在整个应用程序中编写了一个日志文件(xml 文件)( dll 源),在这里我收到“无法访问文件,由于另一个进程使用”之类的异常。.请帮助我,如何管理文件,一次只能使用一个进程...

0 投票
7 回答
97097 浏览

multithreading - 条件变量与信号量

何时使用信号量以及何时使用条件变量?

0 投票
4 回答
5346 浏览

synchronization - Cassandra mutual exclusion locking (synchronization)

Is there anyway to synchronise client using cassandra built in functions?

I need to perform some operations and those operations need to be synchronized with all other clients (mutual exclusion).

In RDBMS I can lock entire table or prepare special table for synchronization purposes and use SELECT ... FOR UPDATE on it.

Can I achive this with Cassandra without any third party apps? If not what's the best way to do that? Preferable languages are Java and Python.

0 投票
2 回答
2521 浏览

algorithm - 彼得森算法:会发生死锁吗

如果在彼得森的算法中,一个进程在离开临界区之后被抢占,然后将其标志设置为假。那么就不会出现死锁了。?? 请帮忙!

0 投票
4 回答
430 浏览

php - 在 C 和 php 之间锁定文件

虽然标题提到了文件,但它不一定是文件。任何锁定机制都可以。

情况如下:我有一个用 C 编写的守护进程,以及一个用 php 编写的网页。我想有一种相互锁定的方法,这样在某些情况下,C 守护进程会锁定一个文件,php 检测到这种情况并告诉客户端系统很忙。

有没有一种简单的方法可以做到这一点?

谢谢,

0 投票
1 回答
228 浏览

process - 我的解决方案是否满足互斥的要求

我写了 2 个进程以满足互斥,但不确定是否是 .. 我的初始标志值为 0。

事实上它们是完全一样的。这两个过程是否满足互斥?我看不到违反了什么要求..

0 投票
1 回答
487 浏览

windows - Citrix 环境中跨用户会话的互斥

我有一个在 Citrix 环境中运行的应用程序。该应用程序可以由不同用户会话中的多个用户同时运行。在我的应用程序中,我正在写入一个应该在所有用户会话中互斥的文件。我尝试了 Mutex 以避免从不同的用户会话写入文件,但是使用 Mutex 失败了,因为在某些情况下不同的用户会话无法检测到 Mutex 对象是否已经创建。

谁能告诉我以下哪种方法可以更好地实现所有用户会话的互斥:

  1. 使用命名管道:如果命名管道已经存在,那么应用程序将等待管道被打开它的应用程序实例关闭。否则创建命名管道以指示获取锁。
  2. 使用锁定文件:在磁盘上创建一个普通文件,用于指示获取锁定并在需要解锁时删除。
0 投票
7 回答
572 浏览

c# - 互斥

我有一个应用程序使用来自不同线程的集合,在这种情况下是队列。一个对象在一个线程中入队,而另一个在另一个线程中出队。

当重新定义集合计数器时,这些操作可能会同时发生,这将解决异常,例如参数超出范围异常。

我正在寻找一种“好看”以及正确的为什么要相互排除这些行为。

  1. 我所说的“好看”的意思是我不想创建我自己的从这个包含锁(对象)机制的集合

  2. 我不想使用我的头脑风暴的想法,这很“丑陋”

我当然想使用锁或互斥锁,但只有当我将这些操作包装在一个将从每个线程调用的过程中,并决定入队或出队,这也将是长且“丑陋”

编辑:
因为似乎没有人在下面看到我的答案

我只是在集合本身上使用了锁定机制

0 投票
0 回答
347 浏览

concurrency - 互斥问题

以下是前面讨论过的互斥问题的解决方案,由 H. Hyman 于 1966 年在 ACM 通讯中发表。它在伪 Algol 中列出如下。

为什么它会失败?,并不是一个完整的答案,我首先看到了问题,因为它只处理两个进程,所以它不可扩展......