Java で公平なロックを使いたい場合、どうしますか? Java 5 以降であれば java.util.concurrent.locks.ReentrantLock クラスを公平オプションを付加してインスタンス化するのが最適解でしょう。一番確実です。 しかし何らかの事情で Java 5 以降のエディションが使えない場合や、大人の事情で java.util.concurrent パッケージが利用できない場合、どうしますか。基本的には自分で実装するしかありません。 公平なロックとは、ロックの獲得順序が保証されたロックのことです。Java の synchronized が不公平な同期機構であることは、あまりにも有名です。ReentrantLock も、デフォルトでは不公平なロックです。 なぜデフォルトでは不公平なロックなのか。それは公平なロックが要求される状況と、公平なロックにした場合の