2011-12-25 11 views
0

start()を呼び出すと、新しい呼び出しスレッドが専用呼び出しスタックから開始します。Javaの新しいスレッドの呼び出しスタック情報

私は、その呼び出しスタックの最初のメソッド、つまりstart()またはrun()が不思議に思っています。

Thread()が完了すると、スレッドは死んだとみなされます。

答えて

2

start()は、新しいスレッドではまったく呼び出されません。元のスレッドでのみ実行されます。

+0

返信いただきありがとうございます。スレッドは、start()が呼び出されるとライブと見なすことができます。それは少し矛盾しているようです..それは、状態 '生きている'が新しいスタックを意味するのではないという意味ですか? – Firefox

+0

しかし、 'start()'メソッドは新しいスタックには現れません。 – SLaks

+1

@Firefoxちょうどそれについて考えてみましょう:メソッドが呼び出されると、スレッドの呼び出しスタックにプッシュされます。 startメソッドの新しいスレッドを作成するだけなので、新しく作成されたスレッドのスタックには表示されません(嘘です、確かに可能ですが、意味がありません) – Voo

3

startは、メインスレッドのメソッド呼び出しです。これは、それがメインスレッドのスタック上にあることを意味します。その後、startの内部で新しいスレッドが実際に起動され、runメソッドが新しいスレッドのスタックの最初のメソッドになります。

+0

清算してくれてありがとうTudor – Firefox

関連する問題