我们的主类中有一个默认线程,但为什么我们在主类中不扩展Thread类。是以某种方式包含Thread类的原因。
这就是我的意思,这是主要类别:
public class Test{
public static void main(String[] args) {
Thread.currentThread().getName();
}
}
我们使用默认的Thread,但为什么一开始我们没有扩展Thread类像这样?
public class Test extends Thread {
public static void main(String[] args) {
Thread.currentThread().getName();
}
}
您有点困惑。所有代码都在某个线程中运行,但是定义此代码的类不需要扩展thread。如果不是这样,所有类都必须扩展Thread,否则就不能调用它们的任何方法。
看看下面的类比:
public class Test {
public static void main(String[] args) {
System.err.println("foo");
}
}
现在问问自己,为什么Test不扩展System,却使用System中的字段和方法。如果你知道这一点,那么你也可以回答你最初的问题。
无论是life还是java,使用一个东西都不需要属于同一个层次。
我永远不会有一个类扩展Thread
。没有要添加的新行为。
最好实现Runnable
,并将该类交给Thread
或Executor
来为您执行。