2013-06-14 7 views
5

ドキュメントは見つかりません。それは何のためにあまり明確ではないthe following discussionだけです。スレッドのeetopフィールドは何ですか?

+0

"あいまいで、不明瞭で、不完全で、幅広く、修辞的で、合理的に答えられない"とはどういうものかわかりません。かなり具体的です... JVM/JDK内部について興味を持っているのは間違っていますか? –

+0

私がしたように、あなたが不思議に思うような場合には、答えは何ですか...もう一度投票してください。私は今それに答えることができますが、それは閉じている間ではありません... –

+1

あなたの投稿は今再開されました。残念ながら、私はあなたのコメントを読む前にそれに答えました:-) – peterh

答えて

1

注:JDK1.1と前プラットフォームスレッド構造に を用いたprivateInfo_offsetフィールド、及び(ホットスポットVMによって、未使用の)スレッドローカルストレージ用 を用いたオフセットeetopを有していました。 JDK1.2では の2つの構造体がマージされていたので、HotSpot VMではprivateInfo_offsetの代わりに フィールドをスレッドに使用します。

JREソースは、JVMの基礎となるOSレベルのネイティブスレッドインスタンス(ref)へのポインタです。最新のJDKソースでは、ファイルhotspot/src/share/vm/classfile/javaClasses.cppにはまだフィールドが含まれており、コメントもそこにあります。

対応するJavaクラス(jdk/src/share/classes/java/lang/Thread.java)では、private longと宣言されています(おそらく、Javaはポインタを知らないためです)。

+0

JDK 1.8.0_60をチェックしただけで、フィールドはまだ 'Thread'クラスにあります。また、削除されたという引用には従わず、 'privateInfo_offset'が' eetop'にマージされたとしか書かれていません。 –

+0

@AndrewLyginうわー!私は、JREのソースではなく、ドキュメントだけをチェックしました。途中でかなり面白い、調査です。私はすぐに戻ってきます! – peterh

+0

これは内部的にVMによってまだ使用されているネイティブ 'JavaThread'構造への参照を含んでいます。だから、引用が正しいです、あなたはあなたの結論を修正する必要があります。 –

関連する問題