I have to implement one-consumer one-producer standard algorithm. I can implement it using `Queue` and couple of `lock` statements easily. Or I can just use `ConcurrentQueue`. What is better?

If `Queue + lock` is used then I can optimize "multiple addition/retreival", because I can `lock` once and then `Add` many times.

What is faster in general case - `ConcurrentQueue` or `Queue + lock` and how much the difference is? Of course `ConcurrentQueue` is the most straigt forward way but I do not want to loose a lot of performance as I'm using this in HFT trading application.