取得和设置线程名称

在Thread类中可以通过getName()方法取得线程的名称,还可以通过setName()方法设置线程的名称

线程的名称一般在启动线程之前设置,但也许为已经运行的线程设置名称,允许两个Thread对象有相同的名称,但尽量不要用相同的名称,

如果没有设置名称,系统会自动分配名称

范例:取得线程的名称

package test1;

class MyThread5 implements Runnable {
	public void run() {
		for (int i = 0; i < 3; i++) {// 覆写run方法
			System.out.println(Thread.currentThread().getName() + "运行,i=" + i);// 取得当前线程的名称
		}
	}
}

public class ThreadDemoName01 {
	public static void main(String[] args) {
		MyThread5 my = new MyThread5();
		new Thread(my).start();
		new Thread(my, "--A").start();// 手工设置线程的名称
		new Thread(my, "--B").start();
	}
}

  结果:

Thread-0运行,i=0
Thread-0运行,i=1
Thread-0运行,i=2
--A运行,i=0
--A运行,i=1
--A运行,i=2
--B运行,i=0
--B运行,i=1
--B运行,i=2

范例:线程运行状态的判断

package test1;

import javax.xml.ws.soap.MTOM;

class MyThread5 implements Runnable {
	public void run() {
		for (int i = 0; i < 3; i++) {// 覆写run方法
			System.out.println(Thread.currentThread().getName() + "运行,i=" + i);// 取得当前线程的名称
		}
	}
}

public class ThreadDemoName01 {
	public static void main(String[] args) {
		MyThread5 my = new MyThread5();
		Thread t = new Thread(my, "线程");
		System.out.println("线程开始执行之前-->" + t.isAlive());//判断是否启动
		t.start();
		System.out.println("线程开始之后-->" + t.isAlive());//判断是否启动

		for (int i = 0; i < 3; i++) {
			System.out.println("main运行-->" + i);
		}
		System.out.println("代码执行之后-->" + t.isAlive());
	}
}

  结果:

线程开始执行之前-->false
线程开始之后-->true
main运行-->0
main运行-->1
main运行-->2
代码执行之后-->true
线程运行,i=0
线程运行,i=1
线程运行,i=2

posted on 2011-12-09 10:52  wangbokun  阅读(1161)  评论(0编辑  收藏  举报

导航