目录
这两个几乎是一样的
void addTask(Task task)
{
TaskList.emplace_back(task);
// ii = 1;
// con.notify_one();
::sem_post(&taskSem);
}
void runTask()
{
// unique_lock<mutex> lock(mut);
// while( ii == 0) con.wait(lock);
::sem_wait(&taskSem);
auto task = TaskList.front();
TaskList.pop_back();
task();
}
区别
sem简单
C++条件变量增加了一些判断 并且wait()一定要配合unique_lock<mutex> lock(mut)使用;
而不能是lock_guard<>;