java多线程编程之二(currentThread)

currentThread方法

代码CountOperate:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package thread.currentThread;

public class CountOperate extends Thread{
  public CountOperate(){
    System.out.println("countOperate Thread.currentThread().getName()====" + Thread.currentThread().getName());
    System.out.println("countOperate getName()=====" + this.getName());
  }
  
  @Override
  public void run(){
    System.out.println("run Thread.currentThread().getName()====" + Thread.currentThread().getName());
    System.out.println("run getName()====" + this.getName());
  }

  
  
}

代码CountOperateMain:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package thread.currentThread;

public class CountOperateMain {
  public static void main(String[] args) {
    CountOperate thread = new CountOperate();
    thread.setName("countOperate");
    //thread.start();
    
    Thread mainThread = new Thread(thread);
    mainThread.setName("mainThread");
    mainThread.start();
    
  }
}

运行CountOperateMain返回结果如下:

1
2
3
4
countOperate Thread.currentThread().getName()====main
countOperate getName()=====Thread-0
run Thread.currentThread().getName()====mainThread
run getName()====countOperate

解析: 1.Thread.currentThread().getName()获取的是当前调用这部分程序块的线程; 2.如构造函数是由Main的线程调用的; 3.如CountOperate线程是作为参数target传入mainThread,被mainThread调用的,则返回的是mainThread 4.如this.getName()获取的则是这个线程对象的名称;



版权声明:自由转载-非商用-非衍生-保持署名 lonpo 本文永久链接: http://lonpo.github.io/java/java-thread-currentThread/