使用信号量替换自旋锁

3

我在多线程代码中使用了很多自旋锁,大部分时间它们都在等待其他线程完成工作,因此会消耗大量的CPU资源。在Linux中,我通常使用pthread_cond_wait和pthread_cond_signal来暂停线程并在被信号唤醒时恢复执行。Boost库中是否有类似的东西?我快速查看了一下,但并没有找到。

Visual Studio 2005

2个回答


1

你正在寻找互斥锁或信号量。Boost库确实支持互斥锁和信号量

互斥锁是二进制信号量,简单地被认为是一把锁,只允许一个线程通过你的临界区

计数信号量可以帮助简化一些情况,其中锁(互斥锁)过于严格。


Nupe,我需要一个条件变量。 - Lodle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接