简单 小列子 以便理解 start 和 run 方法的区别
第一步定义一个 兔子 类 实现run方法:
package com.java.thread.test;//实现线程 继承 thread接口 或者 实现 runnable接口
public class rabbit extends Thread {@Overridepublic void run() {//线程体for(int i=1;i<11;i++){System.out.PRintln("兔子跑了"+i+"步");}}}
第二步 同样定义一个 乌龟 类 实现run方法:
package com.java.thread.test;public class tortoies extends Thread {@Overridepublic void run() {//线程体for(int i=1;i<11;i++){System.out.println("乌龟跑了"+i+"步");}}}
第三步:main方法 :
/** * 调用线程 * @author Administrator *如何调用线程: 1 实例对象 2 对象.start方法 */public class rabbitApp {public static void main(String[] args) {//第一步实例对象rabbit rb = new rabbit();tortoies tor = new tortoies();//第二步 对象.start方法 rb.start(); //线程启动方法 不代表线程就运行,此方法 将线程假如线程组,等待我们cpu的调用.tor.start();}}
运行结果:
兔子跑了1步兔子跑了2步乌龟跑了1步兔子跑了3步乌龟跑了2步兔子跑了4步乌龟跑了3步兔子跑了5步乌龟跑了4步兔子跑了6步乌龟跑了5步兔子跑了7步乌龟跑了6步兔子跑了8步兔子跑了9步兔子跑了10步乌龟跑了7步乌龟跑了8步乌龟跑了9步乌龟跑了10步
如果在main方法里面 不调用 start 方法 而是run方法,
public static void main(String[] args) {//第一步实例对象rabbit rb = new rabbit();tortoies tor = new tortoies();rb.run();//这个调用 只是对象内部方法 并不是启动线程tor.run();}
结果:
兔子跑了1步兔子跑了2步兔子跑了3步兔子跑了4步兔子跑了5步兔子跑了6步兔子跑了7步兔子跑了8步兔子跑了9步兔子跑了10步乌龟跑了1步乌龟跑了2步乌龟跑了3步乌龟跑了4步乌龟跑了5步乌龟跑了6步乌龟跑了7步乌龟跑了8步乌龟跑了9步乌龟跑了10步
因为run方法只是 对象的一个普通方法,并不会启用线程, 只有一个main方法 主线程 执行我们的程序,所以就一条线 从上往下执行完毕.
新闻热点
疑难解答