Multithreading 我可以从servlet生成线程吗?

Multithreading 我可以从servlet生成线程吗?,multithreading,servlets,Multithreading,Servlets,在开始我的主要问题之前,我想问一个基本问题 假设我正在运行一个简单的Java程序,它在主函数中生成一个线程。当主函数完成时,线程是否会继续运行? 线程之间是否存在父/子关系的概念 我有一个servlet,处理请求需要很长时间(5分钟)。我可以从主servlet生成一个后台线程来处理这项工作吗&很快返回。即使主servlet已完成处理,后台线程是否仍会继续运行 当您希望应用程序退出时,即使您仍有正在运行的线程,您也可以将您的线程标记为守护进程线程: Thread t = new Thread(my

在开始我的主要问题之前,我想问一个基本问题

假设我正在运行一个简单的Java程序,它在主函数中生成一个线程。当主函数完成时,线程是否会继续运行? 线程之间是否存在父/子关系的概念


我有一个servlet,处理请求需要很长时间(5分钟)。我可以从主servlet生成一个后台线程来处理这项工作吗&很快返回。即使主servlet已完成处理,后台线程是否仍会继续运行

当您希望应用程序退出时,即使您仍有正在运行的线程,您也可以将您的线程标记为守护进程线程:

Thread t = new Thread(myRunnable); t.setDaemon(true), t.start(); 线程t=新线程(myRunnable); t、 setDaemon(true), t、 start(); 在应用服务器中执行此操作时,这一点尤为重要,否则服务器无法关闭

如果你重复这样做,你可能需要考虑一个线程池来使这个更有效:

UL>
  • 有父线程和子线程这样的东西,但是你没有太多的控制权。例如,有一个
    InheritableThreadLocal
    ,您可以在其中存储线程层次结构的变量

  • 您可以从servlet生成新线程。更喜欢Java5执行器框架

  • 如果使用Servlet3.0,请查看其功能