线程的start() 方法和run()方法的区别:
start()方法:
- start()方法可以用来启动线程,该方法会在内部调用Runnable接口的run()方法,使用单独的线程执行run()方法中指定的代码。
- start()方法启动线程执行以下任务:
- 统计了一个新线程
- 线程从New State移动到Runnable状态。
- 当线程分配到资源是,运行run()方法。
run()方法:
- run()方法在java.lang.Runnable接口中定义,必须在实现类中重写。
当程序调用start()方法时,会创建一个新线程,然后执行run()方法。但是如果我们直接调用run()方法,则不会创建新的线程,run()方法将作为当前调用线程本身的常规方法调用执行(当前线程调用run()方法 没有新的线程产生),并且不会发生多线程。