实现线程的三种方式总结(超级详细)
- 一、继承Thread类
Thread 类中创建线程最重要的两个方法为:
public void start();
public void run();
采用 Thread 类创建线程,用户只需要继承 Thread,覆盖 Thread 中的 run 方法,父类 Thread 中的 run 方法没有抛出异常,那么子类也不能抛出异常,最后采用 start 启动线程即可。
【示例代码1】不使用线程
public class ThreadTest01 {
public static void main(String[] args) {
Processor p = new Processor();
p.run();
method1();
}
private static void method1() {
System.out.println("--------method1()----------");
}
}
class Processor {
public void run() {
for (int i=0; i<10; i++) {
System.out.println(i);
}
}
}
【执行结果】
0
1
2
3
4
5
6
7
8
9
--------method1()----------
以上顺序输出相应的结果(属于串行) , 也就是 run 方法完全执行完成后,才执行 method1 方法, 也就是 method1 必须等待前面的方法返回才可以得到执行,这是一种“同步编程模型”。
这样执行存在什么样的弊端呢?
按照顺序执行,这就极大的降低了程序的执行效率。无法同时执行多个代码片段,这也是多线程并发所要达到的目的。
【示例代码2】使用线程
public class ThreadTest02 {
public static void main(String[] args) {
Processor p = new Processor();
/*
如果是手动调用该方法,
则并不能采用 run 来启动一个场景(线程),
r