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();

}

}

其运行结果如下:

如果多运行几次,结果可能会不一样。

但是也有可能结果是一样的,由于线程的并发执行性,它的运行结果会有点“任性”。

(0)

相关推荐

  • Java来看一道多线程面试题

    问题:下面线程开启后会执行哪一句话会输出到控制台? 答:你好Thread 会被打印 public static void main(String[] args) { Runnable runnable ...

  • Java学习——39、接口

    Java中的类只能单继承. 但接口可以多继承. 接口(interface)是一组抽象方法.常量和内嵌类型的集合.接口是一种数据类型,接口采用抽象的形式来描述约定. 1.  接口的声明 用关键字inte ...

  • Java学习笔记(四):理解接口 事件监听器

    一.接口 父类和子类比较,父类是一个比子类更抽象的类.这个抽象体现在两个方面:一是父类的属性和方法比子类的少:二是,子类的方法比父类的方法更加具体. 当父类非常抽象时,或者我们仅仅知道这个类的对象应该 ...

  • Java学习-注解和反射

    注解 java.Annotation Annotation的作用:可以呗其他程序读取 Annotation的格式 注解是:@注释名 在代码中存在,还可以添加一些参数 ​@SuppressWarning ...

  • Java学习-多线程

    多线程 任务(Task).进程(Process).线程(Thread) 进程的创建 1.继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用sta ...

  • Java学习-Mybatis

    Mybatis Maven依赖: <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependenc ...

  • Java 学习笔记

    您对计算机(电脑)有了解吗? 计算机组成 系统软件 直接和硬件交互的软件叫系统软件,例如 win7.win8.Linux.mac等操作系统 应用软件 通常在运行在系统软件上,也就是在系统软件上开发的软 ...

  • anyproxy学习2-rule模块实现接口mock功能

    前言 AnyProxy不仅仅可以抓包,还可以拦截请求并修改服务端响应,实现接口mock功能. 面试时候经常会问到第三方支付如何测试这种,如果对接的第三方没提供测试环境,那么就需要搭建一个mock服务器 ...

  • Java学习-126.2048代码

    本篇帖的是按钮的代码. 因为按钮比较多,包括菜单项的动作,为了区分,我用了两个内部类来实现这两部分代码. //本类是Game_2048类的内部类,用来实现上.下.左.右四个按钮,以及重新开始和退出游戏 ...

  • Java学习—125.2048代码

    本篇帖的是部分动作代码. 每个方法前都有注释说明本方法的功能. //随机选取一个位置,并填入数字2.如果此位置中已有数字,那么换一个位置. public void rule(){ x=ran.next ...