mercredi 17 juin 2020

Simple mutex protected queue vs. thread safe queue in C++

I want to use a simple thread-safe std::queue in my program that has multiple threads accessing the same queue. The first thing that came to my mind is protecting the queue operation using mutex as below:

/*Enqueue*/
mutex.lock();
queue.push();
mutex.unlock();

/*Dequeue*/
mutex.lock();
val = queue.front
mutex.unlock();
/*some operation*/
mutex.pop();

I've seen many robust implementations using condition variables for thread-safe queue implementation For e.g. https://stackoverflow.com/a/16075550/3598205 . Will there be a significant difference in the performance if I only have two threads accessing the same queue?

Aucun commentaire:

Enregistrer un commentaire