C++互斥锁定线程优先级

标签 c++ windows multithreading winapi mutex

我希望为一个线程赋予优先级,这样如果两个线程都在等待互斥锁,那么优先级最高的线程将始终在优先级较低的线程之前获取互斥锁。

一位同事建议我应该通过更改线程的线程优先级来实现这一点。我尝试使用 SetThreadPriority() 函数将一个等待线程设置为 0(正常),将另一个设置为 2(最高),但这并没有像我希望的那样影响互斥行为。锁当前总是转到请求所有权的第一个线程。

那么这种行为正常吗?跟我同事的想法相反?有没有其他方法可以赋予我可能缺少的线程优先级?还是我正在寻找更复杂的问题来解决?

最佳答案

线程优先级表示线程在 CPU 上占用的时间由调度程序确定,它将优先调度更高优先级的线程——它不会影响互斥锁的行为,而且我不知道有什么方法可以使它这样做了。

关于C++互斥锁定线程优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44505992/

相关文章:

windows - 我如何强制退出 Git Bash?

c# - 从自己的后台线程更新绑定(bind)控件

c++ - c++ typedef std::function<> 如何使用?

c++ - 使用 -O3 编译时出现奇怪的段错误

c++ - 使用 std::list 中的类型 char 指针检测到内存泄漏

c++ - 创建自定义窗口边框边缘在调整大小时消失

windows - Windows 7 上通过多个图像进行面部检测和识别

windows - PostgreSQL 数据库可以在 Windows Server 2012 R2 上运行吗

multithreading - 咖啡文档 :"Use multiple classification threads to ensure the GPU is always fully utilized"。如何?

java - Web应用程序中的多线程