Java 使用匿名类启动线程合法吗?
通常要启动线程,我们要么扩展thread类,要么实现Runnable接口并重写run()方法。但在下面的代码中,我们并没有执行上面的任何操作,事实上,它使用匿名类来创建线程。在java中启动线程真的是一种好的/合法的/可取的方法吗Java 使用匿名类启动线程合法吗?,java,multithreading,Java,Multithreading,通常要启动线程,我们要么扩展thread类,要么实现Runnable接口并重写run()方法。但在下面的代码中,我们并没有执行上面的任何操作,事实上,它使用匿名类来创建线程。在java中启动线程真的是一种好的/合法的/可取的方法吗 Thread thread = new Thread(new Runnable() { @Override public void run() { } }); thread.start(); 这是一种不好的方法,因为需要为每个线程
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
}
});
thread.start();
这是一种不好的方法,因为需要为每个线程复制/粘贴run方法
这与为什么使用方法/类而不是将所有代码放在一个文件中的原因是一样的。我这样做有两个原因
否则,我会避免这种结构。伙计,这完全取决于您的需求,可能存在需要访问外部类的私有变量的用例,因此您使用了内部匿名类。关于生成新线程,假设您将其用于特定目的,比如网络调用,在这种情况下,您应该在设计线程池时正确使用它,并使用一个生成有限数量的线程,而不考虑网络请求的数量 在java中启动线程真的是一种好的/合法的/可取的方法吗
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
}
});
thread.start();
好吗?-
它是否好取决于您的需求,如果您需要一个线程来以一种fire and forget的方式运行一些重功能,那么它可能是好的
合法?-这是合法的-此代码编译和运行正常
可取吗?不太可取,这可能是基于意见,但我建议与和一起使用