c++ - 获取优先于提升进程的互斥量

标签 c++ windows winapi synchronization multiprocessing

我有一个 Mutex 来避免多个进程同时运行,这些进程可能会在 Mutex 释放后等待启动。现在我可以有一些实例试图获得一个提升的和非提升的 Mutex。一旦 Mutex 被持有锁的进程释放,我希望提升的进程能够在非提升的进程之前获取 Mutex。

不太可能,但我想考虑许多未提升的实例和许多提升的实例竞争同一个互斥锁以带来强大的功能。

实现该目标的稳健方法是什么?

该问题的解决方案可以使用多个互斥量。我在想我可以研究这种方法,将高架和非高架区分开来,并玩点小把戏。

编辑: 我主要在寻找 Windows Vista+ 的答案,但如果我们将问题减少到优先获取互斥锁的进程类别,我认为该问题适用于其他操作系统。了解其他操作系统的解决方案也会很有趣。

最佳答案

只需编写完全符合您要求的代码。例如,您可以计算受互斥锁保护的等待互斥锁的提升进程数。然后对非提升进程进行编码,直到该计数降为零。无论如何,所有进程都在合作——作弊者可能根本拒绝阻止互斥量。所以应该没有安全问题。

关于c++ - 获取优先于提升进程的互斥量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28158352/

相关文章:

c++ - 同一文件流对象的多次使用

c++ - "if"和 "else if"命令在 c++ 中不起作用

linux - 通过 Windows 中的虚拟机使用 ABBYY 的 Linux CLI?

windows - 如何在 Windows 上使用 GNU Make?

c++ - 在这种情况下我应该使用顶点着色器吗?

c++ - 使用模板时如何初始化数组

c++ - C++下的跨进程交互

阅读额外字符的并发症

c++ - 如何强制 MessageBox 显示为顶部窗口

delphi - 如何检查我的应用程序从磁盘写入和读取了多少字节?