实现Runnable接口创建多线程

  在之前的中,我们讲到了Thread类,通过继承Thread类实现可以实现多线程,但是这种方式有一定的局限性。因为Java只支持单继承,一个类一旦继承了某个父类就无法再继承Thread类,例如学生类Student继承了Person类,就无法通过继承Thread类创建线程。

  为了克服这种弊端,Thread类提供了另外一个构造方法Thread(Runnable target),其中Runnable是一个接口,它只有一个run()方法。当通过Thread(Runnable target)构造方法创建线程对象时,只需要为该方法传递一行代码,而不需要调用Thread类中的run()方法。

  下面通过一个案例来演示如何通过实现Runnable接口的方式来创建多线程,代码如下文件8-3所示。

  文件8-3的运行结果如图8-6所示。

public class Example03 {
    public static void main (String[] args) {
        MyThread myThread = new MyThread () ; // 创建MyThread的实例对象
        Thread thread = new Thread (myThread) ; // 创建线程对象
        thread.start () ;    // 开启线程,执行线程中的run()方法
        while (true) {
            System.out.println("main () 方法在运行");
        }
    }
}
class MyThread implements Runnable {
    public void run () {     // 线程的代码段,当调用start()方法时,线程从此处开始执行
        while (true) {
            System.out.println("MyThread类的run()方法在运行") ;
        }

    }
}

  文件8-3中,第11~17行代码定义的MyThread类实现了Runnable接口,并在第12~16行代码中重写了Runnable接口中的run()方法;第4行代码中通过Thread类的构造方法将MyThread类的实例对象作为参数转入,第5行代码中使用start()方法开启MyThread线程,最后在第6~8行代码中定义了一个while死循环。从图8-6的运行结果可以看出,main()方法和run()方法中的打印语句都执行了,说明文件8-3实现了多线程。

实现Runnable接口创建多线程

  图8-6 文件8-3的运行结果

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/254059.html

(0)
上一篇 2022年5月9日
下一篇 2022年5月9日

相关推荐

发表回复

登录后才能评论