1. run()与start()方法:启动线程

  • 使用继承 Thread 类的方法创建新线程
    Thread类下的方法

  • 从运行结果我们可以看出:虽然步骤1在步骤2前面,但是步骤2却比步骤1先执行完。

  • 这是因为 start()方法的执行比较耗时,底层有如下过程:
    1)通过 JVM 告诉操作系统创建线程 Thread
    2)操作系统开辟内存并调用系统函数创建 Thread 线程对象
    3)操作系统对 Thread 线程对象进行调度,以确定执行时机
    4)Thread 在操作系统中被成功执行

  • 注意: 如果在 run 类中直接调用 thread.run()方法,就不是异步执行了,而是同步执行,此线程对象不交给底层的“线程规划器”处理,而是有 main 主线程来调用,也就是必须等 run()方法中的代码执行完毕后才可以执行后面的代码。如下所示:
    Thread类下的方法

2. get方法:获取线程标识

Thread类下的方法

3. currentThread()方法:返回对当前正在执行的线程对象的引用

相关文章: