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

测试 start() 方法


本文探讨了Java中线程的start()与run()方法的区别。start()用于启动线程,而run()则作为线程执行体。start()仅能调用一次且会触发run()方法,直接调用run()则在当前线程执行。
1208

被折叠的 条评论
为什么被折叠?



