Java多线程实现2,实现Runnable接口
2014-12-17 09:45
225 查看
Java 程序只允许单一继承,即一个子类只能有一个父类。所以在Java中如果一个类继承了某一个类,同时又想采用多线程技术的时,就不能用继承Thread类的方式产生线程了,因为Java不允许多继承。这时就要用Runnable接口来创建线程了。采用实现Runnable接口方式实现多线程的大致步骤如下:
定义一个新的类实现Runnable接口,假设此类名为TestThread。
在TestThread类中实现run()方法,此方法即为新线程的运行程序代码。
创建TestThread类的对象t1,再以t1为参数创建Thread类的对象并调用此对象的start()方法。
下面是采用此方式实现多线程的一个示例:
为什么实现了Runnable接口还需要调用Thread类中的start()方法才能启动多线程呢?读者通过查找JDK文档就可以发现,在Runnable接口中只有一个run()方法,并没有start()方法。所以一个类实现了Runnable接口也必须用Thread类中的start()方法来启动多线程。这点可以通过查找JDK文档中的Thread类发现,在Thread类之中,有这样一个构造方法:public Thread(Runnable target)
由此构造方法可以发现,可以将一个Runnable接口的实例化对象作为参数去实例化Thread类对象。在实际的开发中,应尽可能去使用Runnable接口去实现多线程机制。
定义一个新的类实现Runnable接口,假设此类名为TestThread。
在TestThread类中实现run()方法,此方法即为新线程的运行程序代码。
创建TestThread类的对象t1,再以t1为参数创建Thread类的对象并调用此对象的start()方法。
下面是采用此方式实现多线程的一个示例:
public class ThreadDemo9_2 { public static void main(String args[]) { TestThread t = new TestThread(); new Thread(t).start(); //循环输出 for(int i = 0; i < 1000; i++) { System.out.println("main线程在运行"); } } } class TestThread implements Runnable { public void run() { for(int i = 0; i < 1000; i++) { System.out.println("TestThread在运行"); } } }
为什么实现了Runnable接口还需要调用Thread类中的start()方法才能启动多线程呢?读者通过查找JDK文档就可以发现,在Runnable接口中只有一个run()方法,并没有start()方法。所以一个类实现了Runnable接口也必须用Thread类中的start()方法来启动多线程。这点可以通过查找JDK文档中的Thread类发现,在Thread类之中,有这样一个构造方法:public Thread(Runnable target)
由此构造方法可以发现,可以将一个Runnable接口的实例化对象作为参数去实例化Thread类对象。在实际的开发中,应尽可能去使用Runnable接口去实现多线程机制。
相关文章推荐
- JAVA与多线程开发(线程基础、继承Thread类来定义自己的线程、实现Runnable接口来解决单继承局限性、控制多线程程并发)
- JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没
- java实现多线程的两种方式继承Thread类和实现Runnable接口
- JAVA 两种方法实现多线程(继承Thread和实现Runnable接口)
- 在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口
- Java Tread多线程(1)实现Runnable接口
- 黑马程序员——java第十一、十二天:多线程(创建线程1-2、多线程同步代码、实现Runnable接口、安全死锁)
- Java基础知识强化之多线程笔记05:Java中继承thread类 与 实现Runnable接口的区别
- java多线程学习1-继承Thread类和实现Runnable接口来创建线程
- Java实现Runnable接口方式实现多线程的优势
- java多线程扩展Thread类和实现runnable接口的联系
- Java【多线程知识总结(5)】比较继承Thread类创建线程和实现Runnable接口创建线程这两种方式
- java多进程 -CD7-孙鑫-(3)-从实现Runnable接口来实现多线程
- Java中两种多线程实现方法:Thread类和Runnable接口的联系与区别
- JAVA 多线程的简单实现(runnable接口方式)
- Java多线程实现接口Runnable和继承Thread区别(建议使用Runnable)
- Java【多线程知识总结(4)】通过实现Runnable接口创建线程
- JAVA多线程实现的三种方式(继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程)
- Java【多线程知识总结(4)】通过实现Runnable接口创建线程
- Java 多线程实现接口Runnable和继承Thread区别