Javaのスレッド間共有変数

スレッド間で共有できるメモリを共有メモリ、またはヒープ・メモリと呼ぶ。
下記項目がヒープ・メモリに格納される。
・インスタンスフィールド
・静的フィールド
・配列要素
一方、下記項目はスレッド間で共有されることはない。
・ローカル変数
・メソッドのパラメータ
・例外ハンドラのパラメータ
何がいいたいかというと、スレッド間で共有されることのない項目を使えば、同期しなくてもスレッドセーフが実現できるぜヒャッハーってこと。
よくあるケースとしては、インスタンスフィールドとして保持している内容を、各メソッドのローカル変数に移動すればスレッドセーフになる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です