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

时间:2012-09-12 08:19:38

标签: multithreading servlets spring-mvc

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

  1. 让我们假设该操作已完成,并且希望将响应推出。即使我开始的线程仍在运行,这会发生吗?基本上我想知道的是容器会等到线程完成后才能将响应推出去吗?

  2. 假设在上面,容器没有等待线程将响应推出,它是否会等到后台线程完成以获取生成的servlet线程来处理这个特定的请求,否则它将收获这个线程只有当自定义线程完成它的工作?

1 个答案:

答案 0 :(得分:0)

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

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

一旦servlet线程完成了请求的发送并发送了响应,它就会返回池并开始提供另一个请求。再一次,是否已经生成了自定义线程,以及此自定义线程是否仍在运行,这是无关紧要的。