线程的 run() 和 start() 的区别

线程的 run() 和 start() 有什么区别?

  • 调用 start() 方法是用来启动线程的,轮到该线程执行时,会自动调用 run();直接调用 run() 方法,无法达到启动多线程的目的,相当于主线程线性执行 Thread 对象的 run() 方法。
  • 一个线程对线的 start() 方法只能调用一次,多次调用会抛出 java.lang.IllegalThreadStateException 异常;run() 方法没有限制。
    总结: run() 方法相当于启动Thread类里面的一个普通方法, start() 用来启动线程轮到线程执行时再调用 run() 方法,至于什么时候轮到线程执行则是由 cpu 调度决定。

测试 run() 方法
测试 run() 方法
测试 start() 方法
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ToBeMaybe_/article/details/117780311