Spring 的 @Async 注解,和自己手动用线程池执行 runnable 有什么区别?
Java 的“多线程”和“异步”的又有什么区别?
直到 JDK19 才有协程 /虚拟线程,“协程 /虚拟线程”与“异步”的联系是什么?
为什么有人说 “一处用异步,必须处处用异步。” —— 是因为不全用异步就会阻塞?还是因为不全用异步就没有意义?
以及为什么有人说 “异步写法,相较于同步多线程模型,写起来更繁琐”?
@Async 能和 Serverlet 一起用吗?@Async 与 Spring Reactive 有关系吗?
以上就是我的疑问。
楼主只学过 SSM ,对 Spring Reactive 不太了解。
楼主学过一点 nodejs 和 nestjs ,比较习惯 JavaScript 的 async/await 这种写法,切换到 Java 多线程有点被绕晕了。
Spring 的这个 @Async 注解让我搞不清“多线程”、“异步”和“协程”的区别。因为 nestjs 框架很大一部分参考了 spring ,本来以为 Java 这边也有 async/await ,但实际上直到 JDK19 才有协程 /虚拟线程,并且 Spring 现在主要还在用 JDK17
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.