Java 分配给从servlet执行的主类的内存?
我有一个servlet,它使用main method()执行一个类,您通常可以通过命令行启动该类 在像tomcat、weblogic server这样的web容器中,web容器将有自己定义的堆空间和线程数来执行web应用程序发送的请求Java 分配给从servlet执行的主类的内存?,java,multithreading,servlets,Java,Multithreading,Servlets,我有一个servlet,它使用main method()执行一个类,您通常可以通过命令行启动该类 在像tomcat、weblogic server这样的web容器中,web容器将有自己定义的堆空间和线程数来执行web应用程序发送的请求 如果我用servlet中的main方法()启动一个类,那么分配给这个类的内存和线程是多少?当通过调用MyClass.main()调用该方法时(正如您在注释中所述),调用该方法与调用main没有关系-它将与任何其他方法调用一样。这样的 执行期间使用的所有内存都将分
如果我用servlet中的main方法()启动一个类,那么分配给这个类的内存和线程是多少?当通过调用
MyClass.main()
调用该方法时(正如您在注释中所述),调用该方法与调用main
没有关系-它将与任何其他方法调用一样。这样的
- 执行期间使用的所有内存都将分配到tomcat的堆上
- 将在处理servlet请求的线程中执行。因此,servlet在退出
之前不会继续处理main()
Runtime.exec()
生成一个新的VM进程,并在那里运行程序。这将导致相当大的开销,因为启动VM可能需要一段时间
如果您可以在tomcat的VM中运行,但希望与servlet处理并行执行任务,则必须实现自己的线程处理。您将如何“使用主方法启动类”?通过
MyClass.main()
或通过Runtime.exec()
?@piet.t从MyClass.main()开始在这种情况下,它将导致线程饥饿,因为我有很多这样的请求。我的客户机在我的servlet上调用,并且依赖于我的servlet返回一些结果,但是处理它需要很长时间。我是否可以实现一个异步servlet,并在处理完成后将结果返回给客户机?