全国咨询/投诉热线:400-618-9090

首页技术文章正文

Java基础教程:多线程(3)-----创建线程的第二种方式

更新时间:2017-11-14 来源:黑马程序员 浏览量:

Java中只支持单继承,一个类一旦有了父类就无法再继承其它类。比如学生类Dog继承了Animal类,这时由于单继承的局限性,导致Dog类无法通过继承Thread类创建线程。为了解决这个问题,在JDK中提供了一个java.lang.Runnable接口,通过创建Runnable接口实现类的实例对象,并将该对象与Thread对象相关联可以创建线程,代码如下所示:

public class TestRunnable {
    publicstatic void main(String[] args) {
        Aa = new A(); // 创建A类的一个实例对象
        Threadt = new Thread(a); // 创建一个Thread类的实例
        t.start(); // 使线程进去Runnable状态
    while(true) {
        System.out.println(Thread.currentThread().getName()
        +"................... 主线程 is running");
        }
    }
}
class A implements Runnable {
    publicvoid run() { // 线程的代码段,当调用start()方法时,线程从此处开始执行
        while(true) {
            System.out.println(Thread.currentThread().getName()
            +"...................A is running");
        }
    }
}

运行结果如下所示

Thread-0...................A is running

Thread-0...................A is running

Thread-0...................A is running

main ................... 主线程 is running

main ................... 主线程 is running

main ................... 主线程 is running

......


1569030007205_Java多线程.jpg


从例子可以看到,一个类通过实现Runnable接口,并把该类的实例对象传递给Thread的构造方法可以创建线程。这样的创建方式有一下几个好处:

1.适合多个相同程序代码的线程去处理同一个资源的情况,把线程同程序代码、数据有效的分离,很好的体现了面向对象的设计思想。

2.可以避免由于Java的单继承带来的局限性。在开发中经常碰到这样一种情况,就是使用一个已经继承了某一个类的子类创建线程,由于一个 类不能同时有两个父类,所以不能用继承Thread类的方式,那么就只能采用实现Runnable接口的方式。友情提示:获得更多学科学习视频+资料+源码,请加QQ:3276250747。


本文版权归黑马程序员JavaEE学院所有,欢迎转载,转载请注明作者出处。谢谢!


作者:黑马程序员JavaEE培训学院


首发:http://java.itheima.com/


相关推荐:

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

14天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

8天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

0天免费试学

基础班入门课程限时免费

申请试学名额

12天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

10天免费试学

基础班入门课程限时免费

申请试学名额
在线咨询 我要报名