gpt4 book ai didi

c# - .Net 互斥量问题

转载 作者:行者123 更新时间:2023-11-30 22:43:23 26 4
gpt4 key购买 nike

我有一个应用程序使用 Mutex 来实现代码块的跨进程同步。这种机制非常适合当前需要的应用程序。在最坏的情况下,我注意到大约 6 个线程可以在 Mutex 上备份。执行同步代码块大约需要2-3秒。

我刚刚收到一个新要求,要求为 Mutex 创建一个优先级功能,以便偶尔可以将 Mutex 的某些请求视为比其余请求更重要。当这些较高优先级线程之一进入时,Mutex 所需的功能是将获取授予较高优先级请求而不是较低优先级请求。

那么有没有办法控制 Windows 维护的阻塞互斥队列呢?我应该考虑使用不同的线程模型吗?

谢谢,马特

最佳答案

仅使用 Mutex 这将是一个很难解决的问题,我相信有人正在考虑线程优先级等问题,但我可能不会考虑这条路线。

一个选择是维护一个共享内存结构并实现一个简单的优先级队列。共享内存可以使用 MemoryMappedFile,然后当一个进程想要执行这部分代码时,它会将一个具有优先级的 token 放在优先级队列中,然后当它醒来时,每个线程都会检查优先级队列以检查队列中的第一个 token 如果 token 属于进程,它可以使 token 出列并执行代码。

关于c# - .Net 互斥量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3978893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com