线程的执行方式有两种:
1run();
2start(),
run()只是用来表示线程要执行的任务,如果所有线程都是用这个方法执行的,那么所有线程的执行顺序只会按照代码的顺序执行:
线程1.run();
线程2.run();
线程3.run(),
线程的实际执行顺序只会按照代码所写的1,2,3依次执行。
而start()方法是和操作系统进行交互:线程通过start()方法获得操作系统的CPU时间片来执行run()方法中的任务。也就是说谁先获得CPU时间片,谁先执行:
线程1.start();
线程2.start();
线程3.start(),
线程将有可能不再按照1,2,3的顺序执行。
注意线程通过start()方法的执行,自动的地执行了run()方法中的代码。
本文介绍了线程的两种执行方式:直接调用run()方法和使用start()方法。通过run()方法执行线程时,线程将按照代码顺序执行;而通过start()方法则依赖于操作系统调度,可能导致线程执行顺序不确定。

558

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



