因为Java只支持单继承,如果已经继承了一个类,就不能再继承Thread类了,此时,要实现多继承,可以实现Runnable接口。 1、Runnable接口 Runnable接口就是为实现多线程的,它里面只声明了一个run()方法,声明如下: public interface Runnable { public abstract void run(); } 线程对象必须实现此run()方法来描述线程的所有活动及执行的操作,已实现的run()方法称为该线程对象的线程体。 2、示例 以上一篇的例子为例,改写为实现Runnable方法。 其完整代码如下: public class ThreadLearn implements Runnable{ int start,end; public ThreadLearn(int start,int end) {//此为构造方法,因为没有继承,所以不需super() this.start=start; this.end=end; } public void run() {//此为Runnable接口中的方法,可以被多个线程使用 System.out.println("当前线程是:"+Thread.currentThread().getName()); while(start<=end) { for(int i=1;i<=10;i++) { System.out.print(start+" "); start=start+2; } System.out.println(); } } public static void main(String args[]) { System.out.println("当前线程是:"+Thread.currentThread().getName()); ThreadLearn target1=new ThreadLearn(1,100);//创建类的一个对象 ThreadLearn target2=new ThreadLearn(2,100); Thread odd=new Thread(target1,"奇数");//创建线程类的对象,target1为线程的目标对象,线程名为“奇数” Thread even=new Thread(target2,"偶数");//创建线程类的对象,target2为线程的目标对象,线程名为“偶数” odd.start();//启动线程 even.start(); } } 其运行结果如下: 如果多运行几次,结果可能会不一样。 但是也有可能结果是一样的,由于线程的并发执行性,它的运行结果会有点“任性”。 |
|
来自: pythonjava学习 > 《待分类》