通常,为了启动一个线程,我们要么扩展Thread类,要么实现Runnable接口并覆盖run()方法。但是在下面的代码中我们没有做任何上面的事实,事实上它是使用匿名类来创建一个线程。在java中启动线程真的是一个好/合法/可取的方法吗?
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
}
});
thread.start();
答案 0 :(得分:2)
在java中启动线程真的是一个好/合法/可行的方法吗?
好吗? - 它的优点是否取决于你的要求,如果你需要一个线程来运行一些火灾和忘记方式的重要功能,那么它可能没问题。
合法吗? - 这是合法的 - 这段代码编译并运行得很好
可取吗? - 不是真的,这可能是基于意见的,但我建议将Executors与Future和FutureTask一起使用
答案 1 :(得分:1)
我这样做有两个原因
否则我会避免这种结构。
答案 2 :(得分:-1)
这是一种不好的方法,因为你需要复制/粘贴每个Thread的run方法。
与使用方法/类而不是将所有代码放在一个文件中的原因相同。
答案 3 :(得分:-1)
伙计完全取决于您的要求,可能存在需要访问外部类的私有变量的用例,因此您使用了内部匿名类。关于产生新线程,假设您正在将它用于特定目的,请说网络调用在这种情况下,您应该在设计线程池的地方正确使用它,并使用产生有限数量的线程而不管网络请求的数量。 / p>