在使用scoped_lock锁定两个互斥锁之后,我需要从队列执行提取的任务,问题是将一个任务从队列交换到另一个任务,然后执行它。到目前为止,这是我的出发点
std::packaged_task<void(Job)> task;
{
std::scoped_lock scopedLock(w_mutex, r_mutex);
const std::packaged_task<void(Job)>& top_task = waitingJobsQueue.top();
waitingJobsQueue.pop();
runningJobsQueue.push(task);
}
task();
但是我无法将任务保存到变量中以供以后执行。