嗨,我无法找到获得此输出的原因。我理解的第一项输出,但我无法理解的第二行。我是线程技术的新手,我用谷歌搜索,但仍存疑问。有人可以解释一下吗?
输出为:
Inside ThreadEx
Inside ThreadEx
这是我的代码:
class ThreadEx extends Thread {
ThreadEx() {}
ThreadEx(Runnable r)
{
super(r);
}
public void run()
{
System.out.println("Inside ThreadEx");
}
}
class RunnableEx implements Runnable {
@Override
public void run() {
System.out.println("Inside RunnableEx ");
}
}
public class Test4 {
public static void main(String[] args) {
new ThreadEx().start();
new ThreadEx(new RunnableEx()).start();
}
}
最佳答案
这是因为您在run()
类中覆盖了ThreadEx
方法。如果您使用
new Thread(new RunnableEx()).start()
代替
new ThreadEx(new RunnableEx()).start()
您会看到预期的输出(我想预期的输出是
Inside ThreadEx Inside RunnableEx
)