由于C++11 和 Boost.Thread 都没有提供信号量,但是对于这个简单的东西,有时候使用就是太简单,但是为什么没有,可能他们觉得是这个东西太容易出错了,所以自己实现也不是很复杂。
直接上代码:
#include <condition_variable>
#include <mutex>
class Semaphore
{
public:
Semaphore(unsigned long count = 0) : m_count(count) {}
Semaphore(const Semaphore&) = delete;
Semaphore& operator=(const Semaphore&) = delete;
void Signal

这篇博客介绍了C++11标准库中未提供信号量的情况,作者指出信号量的简单性使得自行实现并不复杂,并提供了相应的自定义信号量代码示例。
最低0.47元/天 解锁文章
4052





