package threadTest;
class MyThread extends Thread {
public void run() {
for (int a = 0; a < 100; a++) {
System.out.println(currentThread().getName()+":"+ a);
}
}
}
public class TestThread{
public static void main(String[] args) {
MyThread thread0 = new MyThread();
thread0.start(); //子线程启动,并自动调用run()方法
thread0.run(); //主线程调用run()方法
for(int i = 0; i < 100; i++)
System.out.println("thread main:" + i);
}
}
执行thread0.start()后,子线程启动并自动调用重写的run()方法,thread0.run()为主线程显式调用run()方法,各自运行,互不影响。每次运行的结果都不一样,有时main快,有时thread0快,但“thread main“语句一定在main后运行,因为属于同一个线程(主线程)。下面是几次运行的结果。