代码之家  ›  专栏  ›  技术社区  ›  Lodle

用信号替换旋转锁

  •  3
  • Lodle  · 技术社区  · 16 年前

    我的多线程代码中有很多自旋锁,大多数时间它们都在等待其他线程工作,从而消耗大量的CPU使用量。在Linux中,我通常使用pthread cond_wait和pthread cond_signal来暂停线程并在发出信号时唤醒。boost库中有类似的东西吗?快看一眼,我什么也找不到。

    Visual Studio 2005

    2 回复  |  直到 16 年前
        2
  •  1
  •   Kekoa    16 年前

    您正在寻找互斥或信号量。boost库确实有 Mutex and Semaphore 支持。

    互斥锁是一个二进制信号量,它被简单地认为是一个锁,只允许一个线程通过 critical section .

    计数 semaphores 可以帮助简化某些锁(互斥)限制太强的情况。