spinlock

    3热度

    2回答

    我的多线程代码中有很多自旋锁,大部分时间他们都在等待其他线程工作,因此咀嚼了很多cpu使用情况。在linux中,我通常使用pthread_cond_wait和pthread_cond_signal来暂停一个线程并在发送信号时唤醒。在boost库中是否有这样的东西?快速查看我找不到任何东西。 Visual Studio 2005中

    9热度

    3回答

    我在Windows中使用Interlocked函数做了一个非常简单的自旋锁,并在双核CPU上进行了测试(两个线程递增了一个变量)。 程序似乎工作正常(它提供了相同的结果每一次,这是不是在没有使用同步的情况下),但英特尔Parallel Inspector中说有在值+ = j的竞争条件(请参阅下面的代码)。使用临界区而不是我的SpinLock时警告消失。 我的SpinLock的实现是否正确?这非常奇