信号量实施

ato*_*erz 2 c# c++ implementation semaphore

我想知道是否有办法在C++(或C#)中实现信号量,任何有帮助的库.我尝试使用OpenMP但我无法实际阻止线程,而是我不得不忙着等待它们,如果/当我没有足够数量的线程时会导致死锁.首先,我正在寻找一个可以让我阻止/生成/杀死我的线程的库.
其次,有没有已经实现信号量的库?
最后,当我被介绍到信号量的上下文时,我发现它非常有用(也许我错了?)但我没有看到很多库(如果有的话)实现它.我熟悉OpenMP,环顾英特尔的TBB,C#线程.但是在这些中我都没有明确地看到信号量.那些信号量不像我想的那么实用吗?还是他们难以实施?还是我不知道?
PS
信号量可以跨平台实现吗?因为它们可能与操作系统有关.

Alo*_*ave 6

是否有任何库已经实现了这个?
对于C++,有多个多线程库,它们提供Semaphore实现:

此外,您还可以使用Boost实现信号量.看看这个.