分配给从servlet执行的主类的内存?

时间:2016-06-02 03:40:37

标签: java multithreading servlets

我有一个servlet,用main方法()执行一个类,你通常可以通过命令行启动它。

在像tomcat,weblogic服务器这样的Web容器中,Web容器将有自己定义的堆空间和执行Web应用程序发送的请求的线程数。

如果我在servlet中使用main方法()启动一个类,那么分配给这个类的内存和线程是什么?

1 个答案:

答案 0 :(得分:1)

当通过调用IQuestionInput调用该方法时(正如您在注释中所述),您调用MyClass.main()方法并不重要 - 它就像任何其他方法调用一样。一个这样的

  • 执行期间使用的任何内存都将在tomcat的堆上分配
  • 执行将在处理servlet请求的线程中执行。因此,在main退出之前,servlet不会继续处理。

使用不是来自tomcat堆的存储的最简单方法是通过main()生成一个新的VM进程并在那里运行你的程序。这将导致相当大的开销,因为启动VM可能需要一段时间。

如果您可以在tomcat的VM中运行,但想要与servlet处理并行执行任务,则必须实现自己的线程处理。