1. run()与start()方法:启动线程
-
使用继承 Thread 类的方法创建新线程
-
从运行结果我们可以看出:虽然步骤1在步骤2前面,但是步骤2却比步骤1先执行完。
-
这是因为 start()方法的执行比较耗时,底层有如下过程:
1)通过 JVM 告诉操作系统创建线程 Thread
2)操作系统开辟内存并调用系统函数创建 Thread 线程对象
3)操作系统对 Thread 线程对象进行调度,以确定执行时机
4)Thread 在操作系统中被成功执行 -
注意: 如果在 run 类中直接调用 thread.run()方法,就不是异步执行了,而是同步执行,此线程对象不交给底层的“线程规划器”处理,而是有 main 主线程来调用,也就是必须等 run()方法中的代码执行完毕后才可以执行后面的代码。如下所示: