多线程04-线程创建第二种

创建多线程的第二种方式:实现Runnable接口

采用java.lang.Runnable也是一种非常建的一种,我们只要重写run方法即可

步骤如下;

1定义Runnable接口的实现类,并重写该接口的run方法,该run方法的方法体同样是该线程的执行体

2创建Runable实现类实例,在创建Thread对象,构造方法传递Runnable接口的实现类对象(并以此实例作为Thread的target来创建Thread对象),该Thread对象才是真正的线程对象

3调用线程对象的start方法启动线程

7.继承Thread类和实现Runnable接口的区别

实现Runnable接口创建多线程程序的好处:

1避免了单继承的局限性

  一个类只能继承一个类(一个人只能有一个亲爹),类继承了Thread就不能继承其他类了

  实现了Runnable接口,还可以继承其他类,实现其他的接口

2增强了程序的扩展性,降低了程序的耦合性

  实现Runnable接口的方式,把设置线程任务和开启新线程进行了分离

  实现类中,重写run方法用来设置线程任务,创建Thread类对象,调用start方法开启新线程

首先,创建Runnable接口的实现类RunnableImp1:

package demo04Thread2;
//1创建Runnable接口的实现类
public class RunnableImp1 implements Runnable {
    //2在实现类中重写Runnable接口的run方法
    @Override
    public void run() {
        for (int i = 0; i <20 ; i++) {
            System.out.println(Thread.currentThread().getName()+"---"+i);
        }
    }
}

在创建一个实现类RunnableImp2,开启不同的任务:

package demo04Thread2;
//1创建Runnable接口的实现类
public class RunnableImp2 implements Runnable {
    //2在实现类中重写Runnable接口的run方法
    @Override
    public void run() {
        for (int i = 0; i <20 ; i++) {
            System.out.println("HellowWorld!");
        }
    }
}

再创建demRunnable类:

package demo04Thread2;

public class demRunnable  {
    public static void main(String[] args) {
        //3创建一个Runnable接口的实现类对象
        RunnableImp1 run=new RunnableImp1();
        //4创建Thread类对象,构造方法中传递Runnable接口的实现类对象
        Thread m=new Thread(run);//打印线程名称
        m.start();

        //设置线程任务和开启新线程进行分离,传递不同的实现类,实现不同的任务
        Thread t=new Thread(new RunnableImp2());//打印HellowWorld
        //5.调用Thread类中start方法,开启新线程run方法
        t.start();

        for (int i = 0; i <20 ; i++) {
            System.out.println(Thread.currentThread().getName()+"---"+i);
        }
    }
}

结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵俺第一专栏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值