我应该选择哪个?我可以用@Async
注释Java函数,也可以在new Thread
中调用该函数,例如像这样的Java 8
new Thread(() -> {
myfunction("Test");
}).start();
这两种方式之间有区别吗? 预先感谢。
答案 0 :(得分:1)
默认情况下,Spring将搜索关联的线程池 定义:上下文中的唯一TaskExecutor bean或 执行器bean否则命名为“ taskExecutor”。如果两者都不是 可解决的,将使用SimpleAsyncTaskExecutor处理异步 方法调用。
您的示例和@Async
都相似,因为它们可以在单独的线程中执行
区别在于,使用@Async注释Bean的方法将使其在单独线程中执行,而该线程是从线程池提供的,而不是直接在就像您的情况一样。