java学习——110.实现Runnable接口
因为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();
}
}
其运行结果如下:
如果多运行几次,结果可能会不一样。
但是也有可能结果是一样的,由于线程的并发执行性,它的运行结果会有点“任性”。