起初我是用boost::mutex::scoped_lock
本身(这工作)的boost :: condition_variable与升压::互斥:: scoped_lock的
boost::mutex::scoped_lock lock(mutex_name);
condition.wait(lock); //where condition = boost::condition_variable
不过后来我换了锁,下面不工作
boost::lock_guard<boost::mutex> lock(mutex_name)
condition.wait(lock); //Error
有关如何解决问题的任何建议我收到智能感知错误,指出No instance of the overloaded function matches the argument list
。编译错误是
Error 7 error C2664: 'void boost::condition_variable::wait(boost::unique_lock<Mutex> &)' : cannot convert parameter 1 from 'boost::lock_guard<Mutex>' to 'boost::unique_lock<Mutex> &'
只是一点:你永远不知道并发算法的工作原理。除非你用数学证明它。这是无法完成的,因为编译器和硬件不可证明。 –