run()方法和start()方法的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JingLisen/article/details/84390669

个人博客:小景哥哥

run()方法和start()方法的区别

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

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

​ 只有通过调用线程类的start()方法才能真正达到多线程的目的。

猜你喜欢

转载自blog.csdn.net/JingLisen/article/details/84390669