不同线程中的Spring调用方法

q8l4jmvw  于 2022-11-28  发布在  Spring
关注(0)|答案(1)|浏览(130)

我有http控制器,服务A,服务B。有一个http请求。控制器方法调用A的方法,A方法调用B的方法。控制器-〉A -〉B
线程和加载器:

Controller - [http-nio-8080-exec-7,5,main], TomcatEmbeddedWebappClassLoader
A - [http-nio-8080-exec-7,5,main], TomcatEmbeddedWebappClassLoader
B - [ForkJoinPool.commonPool-worker-3,5,main], jdk.internal.loader.ClassLoaders$AppClassLoader@6ed3ef1

为什么对B的调用在不同的线程和类加载器中?没有异步调用。

k3fezbri

k3fezbri1#

ForkJoinPool是ExecutorService的实现。它将一个任务解析为多个较小的任务,在并行线程中运行,并在完成后将它们连接起来。因此最终结果看起来是同步的。如果没有显式调用,则某个内部库正在流中的某个地方使用fork/join。

相关问题