美文网首页
Runnable接口实现多线程(推荐使用)

Runnable接口实现多线程(推荐使用)

作者: 秋笙fine | 来源:发表于2019-01-16 00:48 被阅读0次

由于Java的单继承局限,所以我们推荐使用Runnable接口实现多线程。在Java里面专门提供了Runnable接口,此接口定义如下:

@FunctionInterface
public interface Runnable{
        public void run();
}

这是一个函数式接口,规定里面只有一个run方法
那么只需要让一个类实现Runnable接口即可,并且也需要覆写run方法。

class MyThread implements Runnable{
    private String name;
    public MyThread(String name){
        this.name=name;
    }
    @Override
    public void run() {
        for (int i = 0; i < 200; i++) {
            System.out.println(this.name+"==>"+i);
        }
    }
}

与继承Thread类相比,MyThread类在结构上没有区别,除了一点,如果继承了Thread类,同时也直接继承了start方法(),但是如果实现的是我们Runnable接口,并没有start方法可以调用。

不管何种情况下,要想启动多线程,一定依靠Thread类完成,Thread类定义有以下构造方法。

public Thread(Runnable target)

接收的是Runnable接口对象,自然可以接收Runnable子类。

因而我峨嵋你使用Runnable接口完整实现多线程应该如下:

package TestDemo;



class MyThread implements Runnable{
    private String name;
    public MyThread(String name){
        this.name=name;
    }
    @Override
    public void run() {
        for (int i = 0; i < 200; i++) {
            System.out.println(this.name+"==>"+i);
        }
    }
}
public class TestDemo{
    
    public static void main(String[] args) {
        MyThread thread1=new MyThread("ThreadA");
        MyThread thread2=new MyThread("ThreadB");
        MyThread thread3=new MyThread("ThreadC");

        new Thread(thread1).start();
        new Thread(thread2).start();
        new Thread(thread3).start();
    }
}
image.png

也成功了。

关注公众号CodeInJava,Java学习图谱,数据结构与算法资料等各种资料都可以在后台获取。等你哦~

相关文章

网友评论

      本文标题:Runnable接口实现多线程(推荐使用)

      本文链接:https://www.haomeiwen.com/subject/vrqpdqtx.html