首页 > 学院 > 开发设计 > 正文

线程的简单小列子- 龟兔赛跑-继承Thread类

2019-11-08 02:53:08
字体:
来源:转载
供稿:网友

简单 小列子 以便理解 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方法 主线程 执行我们的程序,所以就一条线 从上往下执行完毕.


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表