Можно ли использовать std :: deque :: push_back () и std :: deque :: front () / std :: deque :: pop_front () в разных потоках без синхронизации? [Дубликат]

На этот вопрос уже есть ответ здесь:

Использует ли std :: deque или std :: priority_queue поточно-безопасный? [Дубликат] 3 ответаПотокобезопасность для очереди STL 5 ответов

У меня есть ситуация производитель / потребитель с одним производителем и одним потребителем, у которых общий std :: deque.

Позвольте мне написать код:

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();
}

Рассмотрим, как customer () и seller () выполняются в независимых потоках. Этот код нуждается в синхронизации?

Ответы на вопрос(2)

Ваш ответ на вопрос