I'm quite new in multithreading programming, I just know the most common Producer-Consumer-Queue. I'm using the boost c++ libraries and I don't know if is better use boost::lockfree::queue or a wrapper class around std::queue that is using `mutex` and `condition_variable`.
Where is better using lock free data structures and where is better is use a simple implementation based on `mutex` and `condition_variables`?