在以下博文中:
有一个 'push' 方法定义如下:
void push(Data const& data)
{
boost::mutex::scoped_lock lock(the_mutex);
the_queue.push(data);
lock.unlock();
the_condition_variable.notify_one();
}
我的问题是:
为什么在 scoped_lock 变量上调用了显式的“lock.unlock()”?
它的目的是什么?
是否可以安全地删除它,导致“notify_one”方法调用在 scoped_mutex 的范围内?