问题标签 [mutex]

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 投票
3 回答
8614 浏览

vb6 - 如何在 Visual Basic 中使用互斥锁

我已经导入了kernel32库。所以,我有createMutex可用的函数,但我不太确定各种参数和返回值。

这是经典的 Visual Basic,而不是 Visual Basic.NET,但我可能可以以答案的形式使用任何一种语言。

0 投票
38 回答
241250 浏览

c# - 创建单实例 WPF 应用程序的正确方法是什么?

在 .NET(而不是Windows 窗体或控制台)下使用 C# 和 WPF,创建只能作为单个实例运行的应用程序的正确方法是什么?

我知道这与一些称为互斥锁的神话有关,我很少能找到有人愿意停下来解释其中一个是什么。

代码还需要通知已经运行的实例用户尝试启动第二个实例,并且可能还传递任何命令行参数(如果存在)。

0 投票
10 回答
375922 浏览

multithreading - 什么是互斥锁?

互斥锁是一种经常用于解决多线程问题的编程概念。我对社区的问题:

什么是互斥体以及如何使用它?

0 投票
2 回答
3384 浏览

c# - 这是互斥锁的正确使用吗?

我有一种情况,我可能同时运行一个程序的多个实例,重要的是只有一个特定函数不能同时在多个这些实例中执行。

这是使用互斥锁来防止这种情况发生的正确方法吗?

0 投票
36 回答
627479 浏览

operating-system - 二进制信号量和互斥量之间的区别

二进制信号量和互斥量之间有什么区别还是它们本质上是一样的?

0 投票
5 回答
2264 浏览

xml - 如何使用 Delphi 从多个 EXE 实例管理对 XML 文件的并发输入/输出访问。

我有一个用 Delphi 编写的命令行工具,它的工作是在 XML 文件中插入一个节点,然后立即退出。我需要使该工具的多个实例能够同时执行并将节点插入到同一个 XML 中。

为了达到这个目的,我引入了一个简单的文件“mutex”——该工具在写入 XML 之前创建一个临时文件,然后在完成写入后删除临时文件。因此,如果另一个实例被执行,它会检查这个临时文件的存在并等待它被删除。然后它再次创建临时文件,写入 XML 并删除临时文件。

问题是只有当 2-3 个实例尝试同时写入 XML 文件时,它才能正常工作。当有更多实例时 - 其中一些只是永远等待并且永远不会将节点附加到 XML 中。

有没有更好的方法让它与同时运行和写入 XML 的大量实例一起工作?

0 投票
1 回答
1769 浏览

mutex - 为什么在使用 VxWorks 反转安全互斥锁时需要 SEM_PRIORITY_Q?

在 VxWorks 中,我正在使用 SEM_INVERSION_SAFE 选项创建一个互斥锁,以防止出现优先级反转问题。
手册说我还必须使用 SEM_PRIORITY_Q 选项。这是为什么?

0 投票
10 回答
31550 浏览

c++ - C++ 线程,共享数据

我有一个正在运行 2 个线程的应用程序... 是否可以确定当我从一个线程更改全局变量时,另一个线程会注意到此更改?我没有任何同步或互斥系统......但这段代码是否应该一直工作(想象一个名为dataUpdated的全局布尔值):

线程 1:

线程 2:

像 gcc 这样的编译器是否会以不检查全局值的方式优化此代码,只在编译时考虑它的值(因为它永远不会同时更改)?

PS:对于类似游戏的应用程序来说,在写入值时是否会读取并不重要......重要的是其他线程会注意到更改。

0 投票
7 回答
33509 浏览

synchronization - 测试和设置是做什么用的?

在阅读了 Test-and-Set Wikipedia entry之后,我仍然有一个问题“Test-and-Set 将用于什么?”

我意识到您可以使用它来实现 Mutex(如维基百科中所述),但它还有什么其他用途?

0 投票
3 回答
930 浏览

perl - worker MPM 下 mod_perl 中的进程内协调

我需要在 mod_perl 中做一些简单的时区计算。DateTime 不是一个选项。我需要做的很容易通过设置 $ENV{TZ} 并使用 localtime 和 POSIX::mktime 来完成,但是在线程 MPM 下,我需要确保一次只有一个线程与环境混为一谈。(我不关心本地时间的其他用途等)

如何使用互斥锁或其他锁定策略来序列化(在非编组意义上)对环境的访问?我看过的文档没有很好地解释我将如何为这种用途创建互斥锁。也许我只是不了解您如何创建互斥锁。

更新:是的,我知道需要使用 Env::C 来设置 TZ。