Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring@Async中的默认值是什么?_Java_Spring_Threadpoolexecutor_Spring Async - Fatal编程技术网

Java Spring@Async中的默认值是什么?

Java Spring@Async中的默认值是什么?,java,spring,threadpoolexecutor,spring-async,Java,Spring,Threadpoolexecutor,Spring Async,您能告诉我Spring@AsyncThreadPoolTaskExecutor的默认参数是什么吗?或者我如何找到自己的参数 maxPoolSize、corePoolSize和queueCapcity的默认值是什么 我应该重写它们以改进我的应用程序,还是使用默认值就可以了?关于ThreadPoolTaskExecutor的实现。您可以在他们的github存储库中查看它 我假设您希望使用@EnableAsync()注释来支持spring中的异步任务执行 在这种情况下,文件说明如下: 默认情况下,Sp

您能告诉我Spring
@Async
ThreadPoolTaskExecutor
的默认参数是什么吗?或者我如何找到自己的参数

maxPoolSize、corePoolSize和queueCapcity的默认值是什么


我应该重写它们以改进我的应用程序,还是使用默认值就可以了?

关于
ThreadPoolTaskExecutor
的实现。您可以在他们的github存储库中查看它


我假设您希望使用
@EnableAsync
()注释来支持spring中的异步任务执行

在这种情况下,文件说明如下:

默认情况下,Spring将搜索关联的线程池定义:或 上下文中唯一的
org.springframework.core.task.TaskExecutor
bean,或者名为“TaskExecutor”的
java.util.concurrent.Executor
bean

如果两者都不可解析,则将使用
org.springframework.core.task.SimpleAsyncTaskExecutor
来处理异步方法调用


现在,如果您想提供自己的定制,您可以定义(实现)一个
AsyncConfigurer
(),它基本上允许定义一个执行器和异常处理程序(不在这个问题的范围内)

在提交作业的进程和线程池之间有一个队列。如果所有线程都已占用,则作业将只是排队。如果队列已满且线程也已被占用,则新任务将被拒绝。您可以选择两种拒绝策略(例如,调用者运行)


如果要查找真正的池,请查看
SimpleThreadPoolTaskExecutor
ThreadPoolTaskExecutor

是的,但是默认值是什么?是否需要为@Async定义自定义配置?这取决于您的上下文。如果您已经定义了TaskExecutor(并在其他地方提供了它的默认值),它将接受它。因此,默认值取决于您。如果未解决该问题,SimpleAsynctaskeExecutor将为每个任务启动一个新线程(再次出现在其文档中)。这是相当浪费的,所以您可能并不真的想使用SimpleAsyncTaskExecutor。。。。
private int corePoolSize = 1;

private int maxPoolSize = Integer.MAX_VALUE;

private int queueCapacity = Integer.MAX_VALUE;