拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
Thread.currentThread() は、現在のプログラムが実行されているスレッドを返しませんが、コード Thread.currentThread() が実行されているスレッドを返します。
新しいスレッドが構築されると、コードはメインスレッドで実行され、run メソッドのコードはスレッドで実行されることがわかります。
出力を見るとわかりやすい
1. new が Thread オブジェクトの場合、デフォルトの名前は Thread-n の形式になります。Thread のソース コードを参照してください。 2. これはスレッド オブジェクトです。thisこのように使用すると、現在のスレッドになります。 3. Thread.currentThread() は常に現在実行中のスレッドを返します。
new
Thread
Thread-n
this
Thread.currentThread()
コンストラクターメソッドの実行結果は理解できますが、runメソッドの実行結果がsetNameのtestThreadではなくスレッドになっているのはなぜですか?
1. getName() メソッドは Thread クラスから継承されています。
2. はい 3. はい コンストラクターでは、Thread.currentThread() がメインスレッドであり、run メソッドの Thread.currentThread() が現在のスレッドです
Thread.currentThread() は、現在のプログラムが実行されているスレッドを返しませんが、コード Thread.currentThread() が実行されているスレッドを返します。
新しいスレッドが構築されると、コードはメインスレッドで実行され、run メソッドのコードはスレッドで実行されることがわかります。
出力を見るとわかりやすい
1.
new
がThread
オブジェクトの場合、デフォルトの名前はThread-n
の形式になります。Thread
のソース コードを参照してください。2. これはスレッド オブジェクトです。
this
このように使用すると、現在のスレッドになります。3.
Thread.currentThread()
は常に現在実行中のスレッドを返します。コンストラクターメソッドの実行結果は理解できますが、runメソッドの実行結果がsetNameのtestThreadではなくスレッドになっているのはなぜですか?
1. getName() メソッドは Thread クラスから継承されています。
の Thread クラスの getName() メソッドを見てください。 リーリー2. はい
3. はい
コンストラクターでは、Thread.currentThread() がメインスレッドであり、run メソッドの Thread.currentThread() が現在のスレッドです