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