我学习多线程疑惑,为什么会有这种代码出现:
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() {
//...
}
}