线程的命名和取得:
多线程的运行状态是不确定的,所以必须有一个明确标记来标记线程对象,用名称来描述
构造:(创建线程对象的时候设置好名字)
public Thread(Runnable target,
String name)
普通:设置该方法的名字
public final void setName(String name)
(final表示该方法不允许被子类覆写)
普通:得到该线程的名字
public final String getName()
但是如果要想取得线程的对象,在线程中:
*取得当前线程对象:
public static Thread currentThread()
范例:
class MyThread implements Runnable{
@Override
public void run() {
for(int x=0;x<10;x++){
System.out.println(Thread.currentThread().getName() +"x= "+x);
}
}
}
public class TestDemo {
public static void main(String[] args) {
MyThread mt = new MyThread();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt,"have name").start();
}
}
如果没有设置线程名字,系统会自动分配一个名字。如果自己设置线程名字,避免重复,且中间不要修改
范例:
class MyThread implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
}
public class TestDemo {
public static void main(String[] args) {
MyThread mt = new MyThread();
mt.run();
new Thread(mt).start();
}
}
以上说明主方法本身就是一个线程,所有的线程都是通过主线程创建并启动的。
每当我们使用了JAVA命令去解释程序的时候,都表示启动了一个新的JVM进程。而主方法只是这个进程上的一个线程而已。