可运行线程与不可运行线程
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()
方法执行创建它的 Runnable
的 run()
方法(如果存在)。否则它什么都不做。这意味着用 Runnable
创建 Thread
与覆盖 Thread
的 run()
做同样的事情,除了它使用稍微更多的堆栈来进行附加函数调用。
所以没有。无显着差异。
请您简要说明以下线程实现之间是否存在显着差异:
// 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()
方法执行创建它的 Runnable
的 run()
方法(如果存在)。否则它什么都不做。这意味着用 Runnable
创建 Thread
与覆盖 Thread
的 run()
做同样的事情,除了它使用稍微更多的堆栈来进行附加函数调用。
所以没有。无显着差异。