简短的问题。如果我已经编写了 C++ 静态库并在 Ubuntu 上使用 G++ 编译它,我可以安全地假设可以在其他 Linux 发行版上使用 G++ 链接它吗?
我需要一个使用notify_all()方法的示例。因为我不知道它应该如何工作。
每个等待线程均以如下代码开头:
std::unique_lock<std::mutex> lock(mutex);
condition_variable.wait(lock, [](){return SOMETHING;});
Run Code Online (Sandbox Code Playgroud)
从一开始,等待线程就需要获取互斥体。因此,如果有多个等待线程,则其余线程将等待锁定互斥锁。那么,如果等待线程卡在锁定互斥锁上并且根本不执行方法wait(),那么使用notify_all()的目的是什么?这些线程将一个接一个地唤醒,而不是同时唤醒。