线程start与run方法的区别

例子:

public class Test {
 public static void main(String[] args) {
  Runner runner = new Runner();
  Thread t = new Thread(runner);
  t.start();       //调用start()方法来启动线程s

 runner.run();    //直接通过类调用类中的方法来启动线程
 }

}
class Runner implements Runnable {
 public void run() {
  for(int i=0;i<10;i++){
   System.out.println("i = "+i);
  }
 }
}

在启动线程时候,有两种方法可以使用

start()为一半通用的启动线程的方法,通过调用线程类Thread的start()方法来启动线程,然后线程Thread类通过调用run()方法来实现线程的操作,而其中的run()方法中的内容实为线程体,即为该线程所要执行的内容。run()方法执行结束,该线程也就终止了,cpu在执行其他的线程

如果将线程看做一般的Java类的话,则run()方法相当于普通的方法调用,通过普通的java类实例.run()来启动线程,即执行该方法体的内容。最终程序执行的只有主线程这一个。

 

原文地址:https://www.cnblogs.com/xiangpiaopiao2011/p/2044767.html