我期待优先考虑一个线程,以便如果两个线程正在等待一个互斥体,具有最高优先级的线程将始终采取互斥体之前的优先级较低的一个。
一位同事build议,通过改变我的线程的线程优先级,我应该做到这一点。 我尝试使用SetThreadPriority()
函数设置其中一个等待线程为0(正常),另一个为2(最高),但它不会影响像我希望的互斥体行为。 当前锁总是进入请求所有权的第一个线程。
那么这种行为是否正常? 与我的同事的想法相反? 有没有不同的方式给线程优先级,我可能会失踪? 或者我正在寻找一个更复杂的问题来解决?
线程优先级表示线程在调度程序确定的时间内CPU占用多少时间,这将优先调度更高优先级的线程 – 它不影响互斥锁的行为,我也不知道有什么办法可以做到这一点。