Ist es möglich, std :: deque :: push_back () und std :: deque :: front () / std :: deque :: pop_front () für verschiedene Threads ohne Synchronisation zu verwenden? [Duplikat]

Diese Frage hat hier bereits eine Antwort:

Ist die Verwendung von std :: deque oder std :: priority_queue threadsicher? [Duplikat] 3 AntwortenThread-Sicherheit für AWL-Warteschlange 5 Antworten

Ich habe eine Produzent / Konsument-Situation mit einem einzigen Produzenten und einem einzigen Konsumenten, die sich eine gemeinsame Norm teilen.

Lassen Sie mich einen Code schreiben:

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

Stellen Sie sich vor, dass consumer () und producer () auf unabhängigen Threads ausgeführt werden. Muss dieser Code synchronisiert werden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage