run方法和start方法的区别

java 中两种多线程的区别,start方法和run方法的启动区别

拥有回忆 提交于 2019-12-01 05:29:25
直接上代码看的更清晰: package org.thread.demo; public class MyThread extends Thread{ private String name; public MyThread(String name) { super(); this.name = name; } public void run(){ for(int i=0;i<10;i++){ System.out.println("线程开始:"+this.name+",i="+i); } } } package org.thread.demo; public class ThreadDemo01 { public static void main(String[] args) { MyThread mt1=new MyThread("线程a"); MyThread mt2=new MyThread("线程b"); mt1.run(); mt2.run(); } } 运行发现结果很有规律,先第一个对象执行,然后第二个对象执行,并没有相互运行。在JDK的文档中可以发现,一旦调用start方法,则会通过JVM找到run方法。下面启动start方法启动线程: package org.thread.demo; public class ThreadDemo01 { public static