在上一小节中介绍了通过继承Thread类的方式来实现多线程,但因为Java不支持多继承,只支持单继承,继承了Thread类的子类将无法再继承其他类,因此这种方式存在一定的局限性。
为了解决上述问题,Thread类提供了另外的构造方法Thread(Runnable target)和Thread(Runnable target, String name)。在构造方法中,需要提供一个Runnable的实例对象。Runnable是一个接口,该接口中只有一个run()方法,当线程启动的时候,将自动执行run()方法中的代码。这样就避免了要使用线程的类必须继承Thread类的问题,而改为了实现Runable接口。
提示:
Java中允许一个类实现多个接口,但只允许一个类继承一个其他的类。
通过实现Runnable接口来实现线程的一般过程如下:
(1)编写自定义线程类实现Runnable接口,并覆写接口中的run()方法。
(2)在run()方法中编写这个线程需要执行的代码或任务。
(3)在主线程中使用Thread(Runnable target)或Thread(Runnable target, String name)方法来创建线程。
(4)使用start()方法来启动线程。
【例12.2】通过实现Runnable接口来实现多线程编程。
在cn.pzhu.create包下创建一个名为MyRunnable的类(该类实现Runnable接口),然后在这个类中覆写run()方法,关键代码如下:(www.daowen.com)
在编写好MyRunable.Java后,在cn.pzhu.create的包下创建一个名为Example02的类,关键代码如下:
说明:
在创建线程的时候,使用Thread thread = new Thread(new MyRunnable(),"MyRunnable")表示在创建线程的同时将线程命名为"MyRunnable"。如果使用Thread thread = new Thread(new MyRunnable())方法创建线程,那么系统会自动给线程命名,如"Thread-0"。
程序运行结果如图12.5所示。
图12.5 程序运行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。