线程创建之继承

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();
        
    
    

效果:

技术图片

 

以上是关于线程创建之继承的主要内容,如果未能解决你的问题,请参考以下文章

49多线程创建的三种方式之继承Thread类

java之线程创建和启动

死磕 java线程系列之创建线程的8种方式

死磕 java线程系列之创建线程的8种方式

2.多线程学习笔记之线程的创建方式

Java并发编程之线程状态