更新时间: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
......
从例子可以看到,一个类通过实现Runnable接口,并把该类的实例对象传递给Thread的构造方法可以创建线程。这样的创建方式有一下几个好处:
1.适合多个相同程序代码的线程去处理同一个资源的情况,把线程同程序代码、数据有效的分离,很好的体现了面向对象的设计思想。
2.可以避免由于Java的单继承带来的局限性。在开发中经常碰到这样一种情况,就是使用一个已经继承了某一个类的子类创建线程,由于一个 类不能同时有两个父类,所以不能用继承Thread类的方式,那么就只能采用实现Runnable接口的方式。友情提示:获得更多学科学习视频+资料+源码,请加QQ:3276250747。
本文版权归黑马程序员JavaEE学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:黑马程序员JavaEE培训学院
首发:http://java.itheima.com/
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19