JavaTutorial-スレッドの名前を取得
15422 ワード
文書ディレクトリ
スレッドの名前を取得
方法1
public class ExampleCurrentThread extends Thread{
public ExampleCurrentThread(){
System.out.println(" :" + Thread.currentThread().getName());
}
@Override
public void run() {
super.run();
System.out.println("run :" + Thread.currentThread().getName());
}
}
テストのコードは次のとおりです。
public class ExampleCurrentThreadTest extends TestCase {
public void testInit() throws Exception{
ExampleCurrentThread thread = new ExampleCurrentThread();
}
public void testRun() throws Exception {
ExampleCurrentThread thread = new ExampleCurrentThread();
thread.start();
Thread.sleep(1000);
}
}
結果は次のとおりです。
:main --->testRun()
run :Thread-0 --->testRun()
:main --->testInit()
まとめ:
ExampleCurrentThread内部用Thread.CurrentThread()は、構造方法の印刷がmainであることを示す.CurrentThread()は、コードセグメントがそのスレッドによって呼び出されている情報を返します.ここでは構造方法がmainスレッドによって実行されていることは明らかですが、runメソッドは私たちが起動したスレッドによって実行されています.彼に名前を付けていないので、デフォルトはThread-0です.次の
方法2
public class ComplexCurrentThread extends Thread{
public ComplexCurrentThread() {
System.out.println("begin=========");
System.out.println("Thread.currentThread().getName=" + Thread.currentThread().getName());
System.out.println("this.getName()=" + this.getName());
System.out.println("end===========");
}
@Override
public void run() {
super.run();
System.out.println("run begin=======");
System.out.println("Thread.currentThread().getName=" + Thread.currentThread().getName());
System.out.println("this.getName()=" + this.getName());
System.out.println("run end==========");
}
}
テストのコードは次のとおりです。
public class ComplexCurrentThreadTest extends TestCase {
public void testRun() throws Exception {
ComplexCurrentThread thread = new ComplexCurrentThread();
thread.setName("byhieg");
thread.start();
Thread.sleep(3000);
}
}
結果は次のとおりです。
begin=========
Thread.currentThread().getName=main
this.getName()=Thread-0
end===========
run begin=======
Thread.currentThread().getName=Thread-1
this.getName()=byhieg
run end==========