大家先来看下下面这个例子:
class MyThread implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
}
public static void main(String[] args) {
MyThread mt1 = new MyThread();
(new Thread(mt1, "Thread1")).start();
}
}
输出结果为:main
可能有些同学的第一反应是输出:Thread1,再多想一下可能就会有所顿悟。
只调用子线程的run()方法,并没有真正的启动这个子线程,还是在执行主线程main。只有当调用了子线程的start()方法,才能真正算是启动这个子线程,也就是所谓的多线程。