使用scoped_lock从相互排斥的队列中提取packaged_task后运行

时间:2019-07-12 17:21:02

标签: c++ mutex packaged-task scoped-lock

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

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

0 个答案:

没有答案