线程的执行方式有两种:
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()方法中的代码。