2

私は最近Javaプログラミングを学び始め、Javaスレッドのトピックにたどり着きました。私が理解しようとしているのは、私が学んだ限り(私が間違っている場合は私を訂正することを歓迎します)、そのメソッド内にThreadインスタンスを作成するオブジェクトがあるとしましょう。参照変数を保持する必要がありますヒープ内(すべての「生きている」スレッドで表示されるようにします)。しかし、私が理解しようとしているのは、このスレッドの「プライベート」スタックにどのような種類のデータが格納されているかということです。Object catrun()catObject cat

4

4 に答える 4

1

いいえ、参照変数はヒープ上にはありません.スレッドのプライベートスタック上にあります...

run メソッドが実行されると、作成されたオブジェクトは参照なしになるため、それ自体が GC の対象になります。

于 2012-06-26T09:55:00.490 に答える
0

cat 参照 (ポインタ) はスレッド スタックにあり、cat オブジェクトはヒープにあります。

詳細については、次のリンクを確認してください。

http://www.javaworld.com/javaworld/jw-06-2012/120618-jw-archive-under-the-hood-threads-and-shared-data.html

于 2012-06-26T10:04:45.243 に答える
0

cat 変数はスレッド スタック上にあり、その可視性は run メソッドになります。メインスレッドと、生成するすべてのスレッドには、スレッドと SO 変数間で明示的に共有するものを除いて、共通の変数はありません。

于 2012-06-26T10:01:23.433 に答える
0

run実行されると、オブジェクトは に作成されますheapが、参照変数は のプライベート スタックにありThreadます。

于 2012-06-26T10:17:55.103 に答える