首页 理论教育 Java实现Runnable接口

Java实现Runnable接口

时间:2023-10-18 理论教育 版权反馈
【摘要】:实现Runnable接口的程序会创建一个Thread对象,并将Runnable对象与Thread对象相关联。使用参数带Runnable对象的构造方法创建Thread实例。图8-3 使用Runnable接口启动线程流程 编写一个简单的案例演示如何实现Runnable接口,以及如何启动线程。首先创建一个自定义的My Runnable类,让该类实现Runnable接口,并在run()方法中输出一个字符串。由于Java技术只允许单一继承,因此如果已经继承了Thread类,就不能再继承其他任何类,这会使用户只能采用实现Runnable接口的方式创建线程。

Java实现Runnable接口

如果要创建的线程类已经有一个父类,这时就不能再继承Thread类,因为Java不支持多继承,所以需要实现Runnable接口来应对这样的情况。

实现Runnable接口的语法格式如下:

提示:从JDK 的API中可以发现,实质上Thread类实现了Runnable接口,其中的run()方法正是对Runnable接口中run()方法的具体实现。

实现Runnable接口的程序会创建一个Thread对象,并将Runnable对象与Thread对象相关联。从表8-1可以看出Thread类有两个与Runnable有关的构造方法:

使用上述两种构造方法之一均可以将Runnable 对象与Thread 实例相关联。使用Runnable接口启动线程的基本步骤如下:

(1)创建一个Runnable对象。

(2)使用参数带Runnable对象的构造方法创建Thread实例。

(3)调用start()方法启动线程。

通过实现Runnable接口创建线程时,开发人员首先需要编写一个实现Runnable接口的类;然后实例化该类的对象,这样就创建了Runnable对象;接下来,使用相应的构造方法创建Thread实例;最后使用该实例调用Thread类的start()方法启动线程,如图8-3所示。

(www.xing528.com)

图8-3 使用Runnable接口启动线程流程

【例8-4】 编写一个简单的案例演示如何实现Runnable接口,以及如何启动线程。

(1)首先创建一个自定义的My Runnable类,让该类实现Runnable接口,并在run()方法中输出一个字符串。代码如下:

(2)接下来在主线程中编写代码,创建一个MyRunnable类实例,并将该实例作为参数传递给Thread类的构造方法,最后调用Thread 类的start()方法启动线程。具体实现代码如下:

如上述代码所示,启动线程的方法非常简单。运行结果如下所示,同样验证了线程执行的随机性。

注意:要启动一个新的线程,不是直接调用Thread 子类对象的run()方法,而是调用Thread子类的start()方法。Thread类的start()方法会产生一个新的线程,该线程用于执行Thread子类的run()方法。

另外,从面向对象的角度来看,Thread类是一个虚拟处理机严格的封装,只有当处理机模型修改或扩展时,才应该继承该类。由于Java技术只允许单一继承,因此如果已经继承了Thread类,就不能再继承其他任何类,这会使用户只能采用实现Runnable接口的方式创建线程。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈