线程创建之继承
Posted ssxblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程创建之继承相关的知识,希望对你有一定的参考价值。
一、继承实现多线程
Rabit.java
package cn.thread; /* * 模拟龟兔赛跑 * 1.创建多线程 继承Thread +重run(线程体) */ public class Rabit extends Thread @Override public void run() for(int i=0;i<100;i++) System.out.println("兔子跑了"+i+"步"); class Tortoise extends Thread @Override public void run() for(int i=0;i<100;i++) System.out.println("乌龟跑了"+i+"步");
RabitApp.java
package cn.thread; public class RabitApp public static void main(String[] args) //1.创建子类对象 Rabit rab=new Rabit(); Tortoise tor=new Tortoise(); //2.调用start()方法 rab.start(); tor.start(); for(int i=0;i<1000;i++) System.out.println("main--"+i);
效果
二、Runnable接口实现多线程
与继承方式比较:
1.静态代理(StaticProxy)
StaticProxy.java
package cn.thread; /* * 静态代理 设计模式 * 1、真实角色 * 2、代理角色 持有真实角色的引用 * 3、二者实现相同的接口 */ public class StaticProxy public static void main(String[] args) //创建真实角色 you y=new you(); //创建代理角色 WeddingCompany Company=new WeddingCompany(y); Company.marry(); //接口 interface Marry public abstract void marry(); //真实角色 class you implements Marry @Override public void marry() System.out.println("结婚了"); //代理角色 class WeddingCompany implements Marry private Marry you; public WeddingCompany() public WeddingCompany(Marry you) this.you = you; private void before() System.out.println("布置猪窝。。。"); private void after() System.out.println("收拾猪窝.。。。"); @Override public void marry() before(); you.marry(); after();
效果:
以上是关于线程创建之继承的主要内容,如果未能解决你的问题,请参考以下文章