c# - 信号量实现

标签 c# c++ implementation semaphore

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

最佳答案

是否有任何图书馆已经实现了这一点?
对于 C++,有多个多线程库,它们提供信号量实现:

此外,您还可以使用 Boost 实现信号量。检查this出。

关于c# - 信号量实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6000674/

相关文章:

c# - 用户安装软件时自动安装依赖项(.Net)

c++ - 可以报​​告失败原因的 std::optional 的替代方案

c - C中的多线程实现本身

abstract-class - UML 中的类图用法

swift - 有谁知道如何实现这个设计( swift )?

c# - 是否有使用 basicHttpBinding 扩展 WCF 服务以允许 REST 服务与 JSON 通信的好方法?

c# - 如何在 Windows Mobile 上使用背景图像使标签和其他控件透明?

c# - 如何将数组/数据表等变量传递给 SQL Server?

c++ - 如何从自己类的成员函数中访问公共(public)变量? (C++)

c++ - 复制赋值运算符=自赋值校验错误