C/C++ 狂野架构师 -->
  • 精品课程
  • 免费教程
  • 教研团队
  • 开班时间
  • 报考大学
  • 学员社区
  • AI智能应用开发 AI大模型开发(Python) AI鸿蒙开发 AI嵌入式+机器人开发 AI运维 AI测试 跨境电商运营 AI设计 AI视频创作与直播运营 微短剧拍摄剪辑 C/C++ 狂野架构师

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

    更新时间:2017年11月14日15时48分 来源:乐鱼播客 浏览次数:

    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

    ......

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

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

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

    本文版权归乐鱼播客java学院所有,欢迎转载,转载请注明作者出处。谢谢!


    相关教程
    java多线程一:多线程概念
    java多线程二:创建线程的第一种方式
    java多线程三:创建线程的第二种方式
    java多线程四:线程的生命周期
    java多线程五:线程的调度之优先级
    作者:乐鱼播客java学院
    首发:http://java.itcast.cn/
    0 分享到:
    在线咨询 我要报名
    和我们在线交谈!
    【网站地图】【sitemap】