run()方法和start()方法有什么区别?

系统通过调用线程类的start()方法来启动一个线程,此时线程处于就绪状态,而非运行状态,也就意味着这个现象被JVM调度执行。在调度过程中,JVM通过调用线程类的run()方法来完成实际的操作,当run()方法结束后,此线程就会终止。

如果直接调用线程类的run方法,会被当做一个普通的函数调用,程序中仍然只有主线程这一个线程,也就是说,start()方法能够异步调用run()方法,但是直接调用run()方法是同步的,无法达到多线程的目的。

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页