取得和设置线程名称
在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) 编辑 收藏 举报