マシンはデュアルコアで、OSはマルチプロセッサカーネルを使用します。パフォーマンスアセスメントを実行するために、JVMのスレッドアフィニティを単一のコアに設定する必要があります。しかし、私はJVMがスレッドコアとガーベジコレクションのためにマルチプロセッサプリミティブを使用しているのに今は単一のコアに制約されていることに気づかないかもしれないので、パフォーマンスの測定値が歪んでしまうのではないかと心配しています。ガベージコレクタはコマンドラインからチューニングすることができますが、これはスレッド同期のためには不可能です。シングルまたはマルチプロセッサのスレッド同期を使用するかどうかをHotspot JVMに伝えるにはどうすればよいですか?
ここで、JVMはそのスレッドにほとんどOSスレッド(*)を使用します。だから多分質問はむしろ "OS(Windows/Linux)は、対応するプロセスのスレッドアフィニティを設定して単一のコアを使用することに制約があるマルチスレッドアプリケーションで正しい同期プリミティブを使用するのですか?"
(*)これは、OSを呼び出す前にJVMが単独で回転するWindowsでは正確には当てはまりません。その動作は-XX:+ UseSpinningと-XX:PreBlockSpinの設定で制御できます。