スレッド セーフについて読んでいるときに、この問題に遭遇しました。私が正しければ、ローカルプリミティブとオブジェクト参照はスタック内に存在し、スタック内の参照によって指される実際のオブジェクトはヒープ内に存在します。
しかし、メソッド ローカルの非プリミティブ オブジェクトの初期化に関しては、同時実行の問題が発生しませんか? メソッド locals 非プリミティブがヒープに存在し、ポインターのみがスタックに存在する場合、それはインスタンス変数と同じではありませんか?
誰かがこれを理解するのを手伝ってくれませんか....
PS
それぞれが独自の 2 つのスタックと 1 つのヒープを持つ 2 つのスレッドを考えてみてください。私が理解したのは、2 つのスレッドがメソッドのローカル プリミティブ変数をスタック内に保持していることです。私はそれについて問題はありません。
しかし、非プリミティブ メソッド ローカル変数を持つメソッドがある場合はどうなるでしょうか。次に、その変数のオブジェクトがヒープ内に格納されている場合、両方のスレッドが同じオブジェクトにアクセスできますよね? その場合、同期の問題が発生します。
それが私が求めていることです。
ありがとう