启动线城时,start与run的区别

start():多线程

        真正实现了多线程运行。它无需等 run()方法执行完毕就能够执行下面的代码。经过调用 Thread类 的 start()方法,线程进入就绪(可运行)状态,此时多个线程开始排队等待 CPU 分配时间段,线程一直等到 CPU 分配到时间段,也就是说轮到该线程了,这时再经过调用 Thread 类的 run()方法来让线程运行。run()方法称为线程体,它包含了这个线程要执行的内容,等到run()方法运行结束,这个线程就终止了。能够把 CPU 分配给下一个排队的线程。并发

run():线程

        run()方法能够当作是一个普通的方法。若是一开始就调用 run()方法的话,程序仍是要按顺序执行,也就是说要等 run()方法执行完毕,才能够继续执行下面的代码。由于程序中就只有主线程这一个线程,程序的执行路径永远只有这一条,没有达到多线程并发的目的。thread

    总结:start启动线程,而run()方法只是thread的普通方法,仍是在主线程中执行的。程序

相关文章
相关标签/搜索