请您简要说明以下线程实现之间是否存在重大差异:
// Method 1
Thread aThread = new Thread()
{
@Override
public void run()
{
// do some work
}
};
aThread.start();
// Method 2
Thread bThread = new Thread(new Runnable()
{
@Override
public void run()
{
// do some work
}
});
bThread.start();
我试图在stackoverflow中找到类似的问题,但无法成功。对不起,如果之前已经讨论过了。
答案 0 :(得分:1)
根据Javadoc:
https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#run--
run()
的默认Thread
方法执行run()
创建的Runnable
方法,如果存在的话。否则它什么都不做。这意味着使用Thread
创建Runnable
与覆盖Thread
的{{1}}做同样的事情,除了它使用稍多的堆栈功能调用。
所以没有。没有显着差异。