Java——Java中Thread.start和Thread.run有什么区别

线程类的start()方法可以用来启动线程;该方法会在内部调用Runnable接口的run()方法,以在单独的线程中执行run()方法中指定的代码。

start()方法在java.lang.Thread类中定义;

当程序调用start()方法时,会创建一个新线程,然后执行run()方法。

start()方法不能多次调用,否则抛出java.lang.IllegalStateException;

调用start( )方法后,线程的状态是“READY(就绪)”状态,而不是“RUNNING(运行中)”状态


线程类的run()方法是Runnable接口的一个抽象方法,由java虚拟机直接调用的,不会创建的新线程。

而run()方法在java.lang.Runnable接口中定义,必须在实现类中重写。

直接调用run()方法,则不会创建新的线程,run()方法将作为当前调用线程本身的常规方法调用执行,并且不会发生多线程。

而run()方法可以进行多次调用,因为它只是一种正常的方法调用。

你可能感兴趣的:(Java——Java中Thread.start和Thread.run有什么区别)