线程与runnable vs没有runnable

时间:2015-07-21 13:37:28

标签: java multithreading 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();

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

1 个答案:

答案 0 :(得分:1)

根据Javadoc:

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

run()的默认Thread方法执行run()创建的Runnable方法,如果存在的话。否则它什么都不做。这意味着使用Thread创建Runnable与覆盖Thread的{​​{1}}做同样的事情,除了它使用稍多的堆栈功能调用。

所以没有。没有显着差异。