实现多线程的两种方式
1、继承Thread类;
2、实现Runnable接口。
区别
Java语言是单继承的,使用实现Runnable方式创建线程,可以实现多继承。
继承Thread示例
public class MyThread extends Thread {
@Override
public void run() {
super.run();
System.out.println("MyThread");
}
}
public class Run {
public static void main(String[] args) {
MyThread myThread = new MyThread();
myThread.start();
System.out.println("End.");
}
}
输出结果:
End.
MyThread
实现Runnable接口示例
public class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("MyThread");
}
}
public class Run {
public static void main(String[] args) {
MyRunnable runnable = new MyRunnable();
Thread myThread = new Thread(runnable);
myThread.start();
System.out.println("End.");
}
}
输出结果:
End.
MyThread
start()方法比较耗时,导致“End.”会先输出。
start()的执行步骤
1、通过JVM告诉操作系统创建Thread。
2、操作系统开辟内存并使用Windows SDK中的createThread()函数创建Thread线程对象。
3、操作系统对Thread对象进行调度,以确定执行时机。
4、Thread在操作系统中被成功执行。