您的位置:首页 > 编程语言 > Java开发

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

2016-07-21 22:28 666 查看
我学习多线程疑惑,为什么会有这种代码出现:

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() {
//...
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 多线程