run()方法是方法体,线程里要执行的内容;单独调用时按顺序执行(因为新建的线程还没开启);
start()开启一个线程;举个形象的例子就是长跑开始时,每个运动员反应不一样,反应快的就先执行;
Java例子:
1 package test; 2 3 public class RunAndStart { 4 public static void main(String[] args) { 5 Runner1 runner1 = new Runner1(); 6 Runner2 runner2 = new Runner2(); 7 // Thread(Runnable target) 分配新的 Thread 对象。 8 Thread thread1 = new Thread(runner1); 9 Thread thread2 = new Thread(runner2); 10 thread1.start(); 11 thread2.start(); 12 // thread1.run(); 13 // thread2.run(); 14 } 15 } 16 17 class Runner1 implements Runnable { // 实现了Runnable接口,jdk就知道这个类是一个线程 18 public void run() { 19 for (int i = 0; i < 100; i++) { 20 System.out.println("进入Runner1运行状态——————————" + i); 21 } 22 } 23 } 24 25 class Runner2 implements Runnable { // 实现了Runnable接口,jdk就知道这个类是一个线程 26 public void run() { 27 for (int i = 0; i < 100; i++) { 28 System.out.println("进入Runner2运行状态==========" + i); 29 } 30 } 31 }
start()执行结果是可能线程1、2交替出现
run()执行结果是先1执行完再执行2.