0

我应该选择哪一个?我可以用注释 java 函数,@Async也可以在 a 中调用函数new Thread,例如像这样的 Java 8

new Thread(() -> {
            myfunction("Test");
        }).start();

这两种方式有区别吗?提前致谢。

4

1 回答 1

1

根据文档,https ://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/annotation/EnableAsync.html :

默认情况下,Spring 将搜索关联的线程池定义:要么是上下文中唯一的 TaskExecutor bean,要么是名为“taskExecutor”的 Executor bean。如果两者都无法解析,则将使用 SimpleAsyncTaskExecutor 来处理异步方法调用。

相似:

您的示例和@Async相似之处在于它们可以在单独的线程中执行

区别:

不同之处在于,使用 @Async 注释 bean 的方法将使其在从线程池提供的单独线程中执行,而不是像您的情况那样直接在线程中执行。

于 2018-09-06T08:03:15.160 回答