その場で構成を変更する必要がある場合に備えて、Spring Web アプリケーションで Bean を公開しています。最近、並行性について調べていて、JMX を介してこれらの Bean の 1 つを変更すると、他のスレッドで何が起こるのか疑問に思い始めました。
JMX にはメモリ モデルの更新を強制する何らかの方法があるので、他のスレッドが確実に変更を認識できるように、フィールドを揮発性/同期化することを心配する必要はありませんか?
Tomcat がリクエストを処理するために新しいスレッドを作成すると、フィールドがスレッドセーフでなくても、そのスレッドは変更を認識しますよね? したがって、変更を現在のリクエスト スレッドですぐに有効にする必要がない限り、同時実行の問題について心配する理由はありますか?