同時に実行されている多くのスレッドによって呼び出される列挙型のメソッドがあります。
JVM では、列挙型のインスタンスを 1 つだけメモリに割り当てることができるため、CPU が同じ位置にアクセスするのをスレッドが待機するのを避けるために、コンパイラまたは JVM 自体によって最適化が行われていると思います。メソッドがメモリを消費し、スレッドごとにメソッドを何度も実行するため、ボトルネックが発生します。
スレッドの数を 5 から 300 に変更しても (ScheduledExecutorService を使用して実行しています)、システムの全体的なスループットに違いは見られません。
本当に最適化が行われているのでしょうか、それとも私が想像しているものとは異なりますか?