在java线程学习这一块,Thread类中有start和run两种方法,他们的区别如下:
start:该方法可以实现多线程。只要一个线程用上了start方法,那么该线程也就开始进入执行状态,只需要等待被分配CPU时间片,跟其他线程是可以同时执行的。这也就是多线程的体现。值得注意的是,在调用start方法的时候,其实其内部执行该线程最后的体现也是执行其内部的run方法。
run:该方法在被一个线程调用时,它就跟一个普通方法没什么区别,但是如果直接调用run方法的话,在程序中依然只有主线程这一条线程,其程序执行的路径也只有一条,需要顺序执行,也就是说,需要等待主线程执行完毕之后才能执行你调用run方法的线程,这样也就没有达到多线程的目的。
本文详细解析了Java中Thread类的start与run方法的区别。start方法通过启动新的线程来执行run方法,实现真正的多线程并发;而直接调用run方法则无法创建新线程,只能在当前线程中顺序执行。
1342

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



