巷では「ArrayBlockingQueue よりも LinkedBlockingQueue の方がスループット性能がいいよ」なんてまことしやかに言われているけど、どうにも気になったので検証してみたら、実は ArrayBlockingQueue の方が性能いいんじゃない? という結論に至った話です。 Producer-Consumer デザインパターンと BlockingQueue Java で Producer-Consumer デザインパターン を実現するときによくお世話になる BlockingQueue インタフェース。このインタフェースには ArrayBlockingQueue クラス と LinkedBlockingQueue クラス の二つの実装が標準 API として提供されています。 高い処理性能を要求されるプログラムを Java で書こうとしたときに、CPU のすべてのコア
![Java の BlockingQueue 実装の性能を比較してみた](https://cdn-ak-scissors.b.st-hatena.com/image/square/fbf5c7ad3205a176ecd121953107c4f5e8532e40/height=288;version=1;width=512/http%3A%2F%2F1.bp.blogspot.com%2F-A-71YMiPPNc%2FUVg0ABA6vWI%2FAAAAAAAAASk%2FB0OkoGkXK0w%2Fw1200-h630-p-k-no-nu%2Fblockingqueue-comparison.png)