void
私はJavaに関する本を読んでいました.1つのプライベート変数、プライベート変数を計算して設定するための高価な操作を行う1つのパブリックメソッド、およびプライベート変数を返す2番目のパブリックメソッドを持つクラスを宣言するこの演習問題がありました変数。質問は「どうすればこのスレッドセーフにできるか」であり、考えられる答えの 1 つは「2 つのメソッドをそれぞれ同期する」であり、もう 1 つの考えられる答えは「このクラスをスレッドセーフにすることはできない」でした。
両方のメソッドを同期したとしても、Thread1 がセッターを呼び出し、Thread1 がゲッターを呼び出す前に、Thread2 が実行されてセッターを呼び出す可能性があるため、クラスをスレッドセーフにすることはできないと考えました。行って結果を取得すると、間違った情報が得られます。これは物事を見る正しい方法ですか?この本は、2 つのメソッドを同期させることでクラスをスレッドセーフにすることが正しい答えであると示唆していましたが、今では混乱しています...