|
|
WaitForSingleObject(m_hTaskQueueSync, THREAD_POOL_WAIT_TIMEOUT);
{
if (false == m_TaskQueue.empty())
{
pQueueInfo = m_TaskQueue.front();
m_TaskQueue.pop();
}
}
ReleaseMutex(m_hTaskQueueSync);
我在看别人的线程池的程序的时候看到这段不太明白(其中m_TaskQueue是用queue声明的队列), 我认为这里的用意是从任务队列头上取得任务,然后删除队列头的。但它这里用了pop()函数,我查过MSDN说pop()函数是删除队列中的最后一个元素。这跟删除队列的第一个元素不是矛盾了吗?还是我理解方面有问题呢?大家认为怎样呢? |
|