Java HttpServlet如何在不实现可运行或扩展线程的情况下创建线程

Java HttpServlet如何在不实现可运行或扩展线程的情况下创建线程,java,jakarta-ee,Java,Jakarta Ee,我们知道,当servlet接收请求时,它会创建一个新线程,并在新线程内调用服务方法。因此,只有一个Servlet实例,就会调用许多线程 我不明白的是HttpServlet如何能够在不实现可运行或扩展线程的情况下创建自己实例的线程 任何人都可以澄清。这是由Servlet容器(也称为Web容器)处理的。 Servlet容器负责维护Servlet生命周期 servlet的生命周期 容器调用no-arg构造函数 Web容器调用init()方法。此方法初始化 servlet,必须在使用前调用 对于ser

我们知道,当servlet接收请求时,它会创建一个新线程,并在新线程内调用服务方法。因此,只有一个Servlet实例,就会调用许多线程

我不明白的是
HttpServlet
如何能够在不实现可运行或扩展线程的情况下创建自己实例的线程


任何人都可以澄清。

这是由Servlet容器(也称为Web容器)处理的。 Servlet容器负责维护Servlet生命周期

servlet的生命周期

  • 容器调用no-arg构造函数
  • Web容器调用init()方法。此方法初始化 servlet,必须在使用前调用 对于servlet,init()方法是 只打过一次电话
  • 初始化之后,servlet可以为客户机请求提供服务。每个 请求以自己的方式提供服务 分开的线。Web容器 调用的service()方法 用于每个请求的servlet。这个 service()方法确定类型 提出请求和发出的通知 它需要一个合适的方法来处理 请求。开发人员 servlet必须提供一个实现 对于这些方法。如果请求 方法未实现的 servlet的方法是 通常调用父类 导致返回错误 给请求者
  • 最后,Web容器调用destroy()方法,该方法接受 servlet停止服务。毁灭 方法,如init(),仅被调用 在servlet的生命周期中一次

  • 这由Servlet容器(也称为Web容器)处理。 Servlet容器负责维护Servlet生命周期

    servlet的生命周期

  • 容器调用no-arg构造函数
  • Web容器调用init()方法。此方法初始化 servlet,必须在使用前调用 对于servlet,init()方法是 只打过一次电话
  • 初始化之后,servlet可以为客户机请求提供服务。每个 请求以自己的方式提供服务 分开的线。Web容器 调用的service()方法 用于每个请求的servlet。这个 service()方法确定类型 提出请求和发出的通知 它需要一个合适的方法来处理 请求。开发人员 servlet必须提供一个实现 对于这些方法。如果请求 方法未实现的 servlet的方法是 通常调用父类 导致返回错误 给请求者
  • 最后,Web容器调用destroy()方法,该方法接受 servlet停止服务。毁灭 方法,如init(),仅被调用 在servlet的生命周期中一次
  • 我们知道,当servlet接收请求时,它会创建一个新线程,并在新线程内调用服务方法。因此,只有一个Servlet实例,就会调用许多线程

    事实上,这是错误的。web容器通常维护一个有边界的工作线程池来处理请求。不会为每个新请求创建新线程

    我不明白的是,HttpServlet如何能够在不实现可运行或扩展线程的情况下创建自己实例的线程

    基本上没有
    HttpServlet
    不创建线程,也不是线程或可运行的

    web容器具有实现特定的类,这些类实现
    Runnable
    或扩展
    Thread
    。这些类调用(共享)
    Servlet
    实例上的相关方法

    我们知道,当servlet接收请求时,它会创建一个新线程,并在新线程内调用服务方法。因此,只有一个Servlet实例,就会调用许多线程

    事实上,这是错误的。web容器通常维护一个有边界的工作线程池来处理请求。不会为每个新请求创建新线程

    我不明白的是,HttpServlet如何能够在不实现可运行或扩展线程的情况下创建自己实例的线程

    基本上没有
    HttpServlet
    不创建线程,也不是线程或可运行的


    web容器具有实现特定的类,这些类实现
    Runnable
    或扩展
    Thread
    。这些类调用(共享)
    Servlet
    实例上的相关方法。

    我理解Servlet生命周期的上述内容。。但我的问题是,从技术上讲,如何创建一个Servlet类的线程,并用它实现可运行或扩展线程?没有什么比“Servlet线程”更像了,只有一个Servlet实例被所有工作线程使用。对象实例不属于线程;它们可以从每个现有线程调用,有时甚至并发调用,这使得多线程编程非常困难。。但我的问题是,从技术上讲,如何创建一个Servlet类的线程,并用它实现可运行或扩展线程?没有什么比“Servlet线程”更像了,只有一个Servlet实例被所有工作线程使用。对象实例不属于线程;可以从每个现有线程调用它们-有时甚至并发调用,这使得多线程编程非常困难。明白了。。因此,具有servlet实例并实现可运行或扩展线程的separte类在新线程中调用servlet的服务方法。。谢谢你的澄清和工人线程的澄清。明白了。。因此,一个separte类具有servlet实例并实现可运行或扩展线程