线程互锁的有关问题.大神进来

线程互锁的问题..大神进来
10个线程共用一个临界区..
有没有可能会让有一部分线程永远也没机会进入临界区???

比如说 1, 2, 3, 4, 5, 6, 7, 8, 9这几个线程轮流进入临界区.
那0线程就一直没机会进去..
有这可能么???

或者是系统会优先让没有进去过的线程进入临界区???


如果有上面说的问题出现..
那有没有什么办法解决这种问题..?
多线程 c++ vc 临界区 死锁

------解决方案--------------------
你想多了,windows作为抢占式操作系统,它会自动帮你的,

否则 程序员无法使用多线程。 反正 有某个线程永远没机会获得cpu时间片.


------解决方案--------------------
临界区对各个线程来说,是同等对待的,由系统调控。
如果想让某个线程永远没办法进临界区,那就让他不去尝试进入临界区得了。
比如,线程可以获得一个号码,某些号码不去尝试

unsigned CALLBACK Thread(void* e)
{
    static volatile LONG x;
    LONG m_x = InterlockedIncrement(&x);
    if (m_x != 1)
    {
        // 尝试进入临界区
    }
}
------解决方案--------------------
引用:
引用:临界区对各个线程来说,是同等对待的,由系统调控。
如果想让某个线程永远没办法进临界区,那就让他不去尝试进入临界区得了。
比如,线程可以获得一个号码,某些号码不去尝试

unsigned CALLBACK Thread(void* e)
{
    static volatile LONG x;
    LONG m_x ……


你想多了,多虑了

微软帮你解决了