取得和设置线程名称
在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
浙公网安备 33010602011771号