std::deque<T> dq;
Thread_function(pointer to queue as argument) // created 8 threads
{
vertext_found = true;
**v is initialized to NULL
while ( i < dq->size())
{
EnterCriticalSection(&h);
if( i < dq.size() ) {
v = dq.at(i); // accessing element of queue without popping
i++;
vertext_found = true;
}
LeaveCriticalSection(&h);
if (vertext_found && (i < dq.size()) && v != NULL)
{
**operation on 'v'
vertext_found = false;
}
}
}
这是否会成为数据竞争条件,尤其是在关键部分之外处理“ while (i < dq->size()) ”时?我的方法正确吗?否则请建议我。