我今天才开始学习 Java 中的线程。 到目前为止,我看到人们通常使用 2 种方法来创建它们,但我不明白它们之间的区别:
1:
new Thread() {
@Override
public void run(){
//mycode goes here;
};
}.start();
2:
new Thread(new Runnable() {
@Override
public void run(){
//mycode goes here;
}
}).start();
那么,如果没有必要,人们为什么要使用 new Runnable()
?它只是强制您拥有 run()
方法,但是如果您创建线程,那么不自己创建 run 方法是不合逻辑的吗?还是我错了?
但是为什么在创建匿名线程时要使用new Runnable()
呢?就像上面的第二个例子?因为我已经看到这是我在网上找到的一些教程。
我只是问是否有这样做的理由。
我知道线程也可以通过其他方式创建:
(我不是在谈论实现与扩展!)
3:
Thread t1 = new Thread(new MyRunnable());
4:
MyThreadClass my1 = new MyThreadClass();
最佳答案
在某些情况下,当您已经有一个 Runnable
的实例可以在不同的线程中运行时,它可能会很有用。例如 Runnable
s 可用于封装命令设计模式。
在您的情况下,没有理由创建 Runnable
,因为它不会添加任何内容。
关于 java ;制作线程之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31202380/