2009-08-12 5 views

答えて

10

現在スレッドで実行されます。 新しいスレッドを開始しませんこのようにします。

しかし、実際にあなたの例では新しいスレッドには何のコードも実行されていないので、それは問題ではありません。

+0

現在のスレッドは何ですか? – Johanna

+1

main()メソッドを実行しているメインスレッド。 –

3

main()コードを実行するスレッドは、現在のスレッドです。 Threadオブジェクトを作成し、そのメソッドの1つ(start()以外)を呼び出す方法は、クラスIntegerまたはStringのメソッドを呼び出すことです。新しい実際のスレッドは作成されません。

コード例では、run()メソッドの実行が終了したときにのみmainメソッドの実行が継続されます。これは、run()メソッドに無限ループがある場合(受信要求を待っているとします)、run()の呼び出し後にコード行がさらに存在する場合でも、main()メソッドは実行されないことを意味します。

aThread.start()を呼び出すと、(オブジェクトaThreadによって表される)新たな実際のスレッドを作成し、新しいスレッドがrun()メソッドを呼び出すことができる、とmain()で次の行に元のスレッドの実行を返します。これは、新しいスレッドが永遠に円で回ることができることを意味しますが、main()コードがより多くのスレッドを作成したり他のタスクを実行するのを止めることはありません。

3

通常の方法を呼び出すように実行されます。したがって、メソッドはメソッドを呼び出す同じスレッドで実行されます。

0

スレッドクラスでstart-methodを呼び出すと、startメソッドはしばらくしてから復帰しますが、同時実行ではrun-methodの内容が実行されます。 runメソッドを直接呼び出すと、メソッドが完全に終了した後に、実行され、呼び出し元に戻ります。通常のメソッド呼び出しと同じです。

1

現在スレッドで実行されません新しいスレッドしたがって、runメソッドを自分で呼び出すと意味がありません。これは新しいスレッドを作成しないためです。

関連する問題