定义线程的两种方式

创建和使用线程,就是要让这个线程完成一些特定的功能。 Java 提供了 java.lang.Thread 类来完成多线程的编程,这个类也提供了大量的方法方便操作线程。在编写一个线程类时,可以继承自这个 Thread 类,完成线程的相关工作。

有时编写的线程类除了继承 Thread 以外还要继承其他类,但 Java 又不支持多继承,所以 Java 还提供了另外一种创建线程的方式,即实现 Runnable 接口。

因此,有两种定义线程类的方式——继承 Thread 类和实现 Runnable 接口。

如果线程类直接继承 Thread 类,其代码结构大致如下:

class 类名 extends Thread{
    //属性
    //其他方法
    public void run() { // 重写 `Thread` 类中的 run() 方法
        //线程需要执行的核心代码
    }
}

从线程类的代码结构可以看出,一个线程的核心代码需要写在 run() 方法里。也就是说,当线程从就绪状态,通过调度程序分配 CPU 资源,进入运行状态后,执行的代码即 run() 方法里面的代码。

如果线程类是实现 Runnable 接口的,其代码结构大致如下:

class 类名 implements Runnable{
    //属性
    //其他方法
    public void run() { // 实现Runnable接口中的 run() 方法
        //线程需要执行的核心代码
    }
}

和继承 Thread 类非常类似,实现 Runnable 接口的线程类也需要编写 run() 方法,将线程的核心代码置于该方法中。但是 Runnable 接口中仅仅定义了 run() 这么一个方法(Thread类中可以接收Runnable对象)因此还必须将 Runnable 对象转换为 Thread 对象,从而使用 Thread 类中的线程 API ,转换的方法如下所示。

Runnable 实现类名 对象名 = new  Runnable实现类名();
Thread 线程对象名 = new Thread(对象名);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值