可运行线程与不可运行线程

Thread with runnable vs without runnable

请您简要说明以下线程实现之间是否存在显着差异:

// 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();

我试图在Whosebug中找到类似的问题,但未能成功。对不起,如果之前已经讨论过了。

根据 Javadoc:

https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html#run--

Thread 的默认 run() 方法执行创建它的 Runnablerun() 方法(如果存在)。否则它什么都不做。这意味着用 Runnable 创建 Thread 与覆盖 Threadrun() 做同样的事情,除了它使用稍微更多的堆栈来进行附加函数调用。

所以没有。无显着差异。