I have a producer/consumer situation with single producer and single consumer, sharing a common std::deque.
Let me write some code:
deque<int> dq;
void producer()
{
for (int i = 0; i < N; i++)
dq.push_back(i);
// signal data
}
void consumer()
{
// get signal
int n = dq.front();
dq.pop_front();
}
Consider consumer() and producer() being executed on independent threads. Does this code need synchronization?