什么相当于Boost上的InitializeCriticalSectionAndSpinCount函数?

时间:2014-10-26 14:10:02

标签: c++ multithreading boost spinlock

我想实现类似于InitializeCriticalSectionAndSpinCount的东西,但更具可移植性。 我在Boost中找到了spinlock的实现,但是在文档中我们可以读到:

  

自旋锁的目的是防止多个线程同时访问共享数据结构。与互斥锁相比,线程将忙于等待并浪费CPU周期,而不是将CPU交给另一个线程。

所以它与Windows InitializeCriticalSectionAndSpinCount

不同
  

当一个线程试图获取一个被锁定的关键部分时,线程会旋转:它进入一个迭代旋转计数次数的循环,检查锁是否被释放。如果在循环结束之前未释放锁定,则线程将进入休眠状态以等待锁定被释放。

因为在提升线程中没有进入睡眠状态?

我也找到了 Implementing a spinlock in Boost. Example Needed

我认为它提供了不同的机制,即InitializeCriticalSectionAndSpinCount或者我错了?

0 个答案:

没有答案