我想知道是否有一种方法可以在 C++(或 C#)中实现信号量,任何有帮助的库。我尝试使用 OpenMP,但我无法真正阻止线程,相反我不得不忙于等待它们,如果/当我没有足够数量的线程时会导致死锁。所以首先,我正在寻找一个可以让我阻塞/产生/杀死我的线程的库。
其次,有没有已经实现信号量的库?
最后,当我了解信号量的上下文时,我发现它非常有用(也许我错了?)但我没有看到很多库(如果有的话)实现它。我熟悉 OpenMP,查看了英特尔的 TBB、C# 线程。但是在这些中我都没有明确地看到信号量。那么信号量是不是没有我想的那么实用呢?还是它们难以实现?还是我不知道?
附言
信号量可以跨平台实现吗?因为它们可能与操作系统有关。
最佳答案
是否有任何图书馆已经实现了这一点?
对于 C++,有多个多线程库,它们提供信号量实现:
此外,您还可以使用 Boost 实现信号量。检查this出。
关于c# - 信号量实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6000674/