0

在使用 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();

但我无法将任务保存到变量中以便以后执行。

4

0 回答 0