【发布时间】:2010-10-30 21:42:37
【问题描述】:
我的多线程代码中有很多自旋锁,大部分时间它们都在等待其他线程工作,因此会占用大量 CPU。在 linux 中,我通常使用 pthread_cond_wait 和 pthread_cond_signal 来暂停线程并在收到信号时唤醒。 boost库中有这样的东西吗?快速浏览我找不到任何东西。
视觉工作室 2005
【问题讨论】:
我的多线程代码中有很多自旋锁,大部分时间它们都在等待其他线程工作,因此会占用大量 CPU。在 linux 中,我通常使用 pthread_cond_wait 和 pthread_cond_signal 来暂停线程并在收到信号时唤醒。 boost库中有这样的东西吗?快速浏览我找不到任何东西。
视觉工作室 2005
【问题讨论】:
您正在寻找互斥体或信号量。 Boost 库确实支持Mutex and Semaphore。
互斥锁是一个二进制信号量,它被简单地认为是一个锁,只允许一个线程通过你的critical section。
计数semaphores 有助于简化某些锁(互斥锁)限制过多的情况。
【讨论】: