Spring 的 @Async 注解,和自己手动用线程池执行 runnable 有什么区别?

查看 45|回复 1
作者:yodhcn   
[ol]

  • 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

    异步, spring, 协程, 多线

  • chuck1in   
    一处用异步必须处处用异步,这个概念对多线程的语言不是那么贴切。
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部