Java多线程3. 利用Runnable接口创建线程

目录

1. 引入

2. 介绍

3. 使用说明

4. 当前运行线程表示

5. 实例代码


1. 引入

        由于Java语言不允许类的多重继承,如果类本身已经继承了某个父类,所以就无法再继承Thread类,这种情况下可以使用Runnable接口

2. 介绍

        Runnable接口是Java语言中实现线程的接口,定义在java.lang包中,其中只提供了一个抽象方法run() 的声明。从本质上说,任何实现线程的类都必须实现该接口。Thread类就是直接继承了Object类,并实现了Runnable接口。

3. 使用说明

(1)声明一个实现Runnable接口类,并重载run() 方法

(2)Runnable接口并没有任何对线程创建的支持,通过Thread(Runnable target)的构造方法创建Thread类的实例

(3)利用实例对象调用start()创建新线程

Runnable接口不仅间接地解决了多重继承问题,而且与Thread类相比,Runnable接口更适合于多个线程处理同一资源。

4. 当前运行线程表示

1)第一种情况是若直接使用继承Thread类的子类,在类中this即指当前线程;

2)其他情况,要在类中获得当前线程的引用,须通过Thread.currentThread() 方法

5. 实例代码

package Learning;

public class $2_Runnable implements Runnable{
    @Override
    public void run() {             //run()方法的重写与覆盖
        System.out.println(Thread.currentThread().getName());           //currentThread()方法:
        for (int i=0;i<20;i++){
            System.out.println("看代码-"+i);
        }
    }

    public static void main(String[] args) {
        $2_Runnable t1=new $2_Runnable();
        new Thread(t1).start();
        /*实现Runnable接口:
            ①利用实现Runnable接口的对象创建Thread对象,Thread(Runnable target);  Thread(Runnable target, String name)
            ②调用Thread对象的start()方法,后会经历 if (target != null) { target.run(); } 判断,进而实现调用对象t1的run()方法
            ③解决继承Thread类中的单继承的局限性
            ④常使用Runnable接口实现线程间的数据共享
         */
        for(int i=0;i<20;i++){
            System.out.println("写代码-"+i);
        }
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值