概述
- Start()是启动一个新的线程,然后新的线程会调用run()方法,但是start()方法不可以重复调用,若会出现异常Exception in Thread “main” java.lang.IllegalThreadStateException.而且启动线程,会出现异步的效果,即线程创建和启动是随机的
- run()方法类似一个一个普通方法,如果单独调用,仅仅会在当前线程启用,不会重新启动新的线程。启动线程是同步的。
代码示例
package RunandStart;
public class MyThread extends Thread{
public MyThread(String name){
super(name);
}
@Override
public void run(){
System.out.println(Thread.currentThread().getName()+" is running");
}
}
package RunandStart;
public class Run {
public static void main(String[] args) {
Thread mythead=new MyThread("Mythread");
//此时启动的线程是main线程
System.out.println(Thread.currentThread().getName()+" call mythread.run()");
//仅仅是调用mythead的run方法,不是重新启动新线程
mythead.run();
//此时的线程仍然是main线程
System.out.println(Thread.currentThread().getName()+" call mythread.start()");
//启动新的线程
mythead.start();
}
}
打印结果
main call mythread.run()
main is running
main call mythread.start()
Mythread is running