Spring 的 @Async 注解,和自己手动用线程池执行 runnable 有什么区别?
Java 的“多线程”和“异步”的又有什么区别?
直到 JDK19 才有协程 /虚拟线程,“协程 /虚拟线程”与“异步”的联系是什么?
为什么有人说 “一处用异步,必须处处用异步。” —— 是因为不全用异步就会阻塞?还是因为不全用异步就没有意义?
以及为什么有人说 “异步写法,相较于同步多线程模型,写起来更繁琐”?
@Async 能和 Serverlet 一起用吗?@Async 与 Spring Reactive 有关系吗?
[/ol]
以上就是我的疑问。
楼主只学过 SSM ,对 Spring Reactive 不太了解。
楼主学过一点 nodejs 和 nestjs ,比较习惯 JavaScript 的 async/await 这种写法,切换到 Java 多线程有点被绕晕了。
Spring 的这个 @Async 注解让我搞不清“多线程”、“异步”和“协程”的区别。因为 nestjs 框架很大一部分参考了 spring ,本来以为 Java 这边也有 async/await ,但实际上直到 JDK19 才有协程 /虚拟线程,并且 Spring 现在主要还在用 JDK17