wait要接受两个参数
时间: 2023-09-19 11:07:10 浏览: 77
MySQL 配置优化(多个参数)
在C++11及以上版本中,condition_variable的wait()函数有两个重载版本,分别为:
```c++
template< class Predicate >
void wait( std::unique_lock<std::mutex>& lock, Predicate pred );
void wait( std::unique_lock<std::mutex>& lock );
```
第一个版本需要传入一个谓词(Predicate)参数,用于检查等待的条件是否满足。例如,可以传入一个lambda表达式作为谓词,判断某个条件是否成立。当谓词返回false时,wait()函数会继续等待。当谓词返回true时,wait()函数会返回并继续执行后续代码。使用该版本的wait()函数时,必须使用std::unique_lock<std::mutex>类型的锁,并在调用wait()函数前通过该锁获取锁。
第二个版本不需要传入谓词参数,等待的条件由程序员自行判断。使用该版本的wait()函数时,同样需要使用std::unique_lock<std::mutex>类型的锁,并在调用wait()函数前通过该锁获取锁。
阅读全文