反应器vs线程



我的问题在Java响应式编程中很简单

线程模型:

  1. 用户A(假设线程1)向应用程序发送GET请求。
  2. 线程1将等待/阻塞,直到从DB(IO请求)获得响应。
  3. 一旦收到响应,block被移除,Thread_1返回响应给用户。

响应式编程模型:

  1. 用户A(假设线程1)向应用程序发送GET请求。
  2. 在响应中,thread_1将有一个回调运行。所以它不会等待/阻塞。

问题:

  1. 谁来运行这个调用?也就是说,哪个线程将运行该回调?
  2. 反应器中的事件循环机制是什么?以外行术语提供示例。
  3. 如何在NIO任务的响应式编程中使用多核CPU ?

Spring WebFlux有一个事件循环线程组,默认情况下,该线程组由运行应用程序的机器的CPU核数组成。回调由组中的一个线程运行。如果你使用Spring WebFlux和WebClient(或任何其他相关的数据访问库),那么你就会得到这种多线程行为。

最新更新