Multithreading serlvets和servlet生命周期中的自定义线程

Multithreading serlvets和servlet生命周期中的自定义线程,multithreading,servlets,spring-mvc,Multithreading,Servlets,Spring Mvc,假设我在servlet中启动自己的线程(而不是守护进程)(可以是springMVC应用程序中的控制器或struts操作控制器): 让我们假设该操作是在处理过程中完成的,并且希望将响应推出。即使我启动的线程仍在运行,这种情况还会发生吗?基本上我想知道的是,容器是否会等到线程完成它的工作后才推出响应 假设在上面,容器不等待线程将响应推出,它会等到后台线程完成后获取为处理此特定请求而生成的servlet线程,还是仅当自定义线程完成其工作时才会获取此线程 servlet线程生成的自定义线程与任何其他线程

假设我在servlet中启动自己的线程(而不是守护进程)(可以是springMVC应用程序中的控制器或struts操作控制器):

  • 让我们假设该操作是在处理过程中完成的,并且希望将响应推出。即使我启动的线程仍在运行,这种情况还会发生吗?基本上我想知道的是,容器是否会等到线程完成它的工作后才推出响应

  • 假设在上面,容器不等待线程将响应推出,它会等到后台线程完成后获取为处理此特定请求而生成的servlet线程,还是仅当自定义线程完成其工作时才会获取此线程


  • servlet线程生成的自定义线程与任何其他线程没有什么不同:它是一个独立的并行执行流。servlet线程不关心自定义生成的线程:它继续执行

    因此,响应将被发送到浏览器,就像没有生成自定义线程一样,并且自定义生成的线程是否仍在运行与此无关

    一旦servlet线程完成了请求的服务和响应的发送,它就会返回到池中并开始服务另一个请求。同样,自定义线程是否已生成,以及此自定义线程是否仍在运行,都是无关紧要的