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

标签 c++ windows multithreading winapi mutex

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

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

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

最佳答案

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

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

相关文章:

c++ - 如何设置线程和子线程之间的信号/槽连接?

c++ - 调试断言失败。表达式映射迭代器不可取消引用

windows - 是否有 Rust 函数或模块用于迭代连接到 Windows 计算机的所有可移动驱动器?

c - 使用线程处理来自套接字的多个读/写?

java - 如何在两个无限循环线程之间共享单个列表?

c++:错误:在'class std::result_of<void (*(std::unordered_map

c++ - 将 vector<double> 转换为 vector<string> (优雅的方式)

c++ - Python 和/或 C/C++ 中的高精度算术?

c++ - double vector 的排序 vector

windows - Windows 上的 HOSTAPD/WPA_SUPPLICNAT