java里为什么有了Thread还要设置一个Runnable?

来源:互联网 发布:java软件开发兼职 编辑:程序博客网 时间:2024/04/29 05:08

我学习多线程疑惑,为什么会有这种代码出现:

public static void main(String[] args) {    Thread t = new Thread(new Runnable() {            public void run() {               System.out.println("this is a runnable");            }        }    );    t.start();}

不是有个更简便的方法吗?

Thread t = new Thread() {    public void run() {        System.out.println("this is a thread");    }};t.start();

虽然很容易知道Runnable是个接口,而Thread是Runnable的一个具体实现。但是既然concurrent包中只有Thread一个类实现,那些Runnable这个接口到底有什么用?
答案就是用户可能会使用到多类继承,但是这在java中是禁止,只能用interface实现。比如我想设计一个任务队列,然后这个任务可以随时开启一个线程运行。

class TaskQueue <T> extends LinkedList<T> implements Runnable {    @Override    public void run() {        //...    }}
0 0
原创粉丝点击