我们可以在一个JVM中运行多个进程吗?每个进程都应该有自己的内存配额?一个JVM下的多个进程
我的目标是在新的http请求进入时启动新进程,并为进程分配一个单独的内存,以便每个用户请求都有自己的内存配额 - 并且在其内存配额获取时不会打扰其他用户请求充分。
我该如何做到这一点?
不知道这是否是假设。
我们可以在一个JVM中运行多个进程吗?每个进程都应该有自己的内存配额?一个JVM下的多个进程
我的目标是在新的http请求进入时启动新进程,并为进程分配一个单独的内存,以便每个用户请求都有自己的内存配额 - 并且在其内存配额获取时不会打扰其他用户请求充分。
我该如何做到这一点?
不知道这是否是假设。
简短回答:不是。
Java平台为您提供了两种选择:
所以,本质上,真正的答案是:不,你不能将这个想法应用到Java。 “更多”Java解决方案将研究诸如应用服务器等概念,例如Tomcat或WebSphere。
或者,如果你坚持手动做事;你可以建立你自己的“负载平衡器”;你在哪里有一个面向客户端的JVM;它简单地将请求“转发”给许多其他JVM中的一个;而那些“其他”JVM将独立工作;每个都在自己的过程中运行;当然你可以对CPU /内存/使用情况进行“微观管理”。
关于子进程“您有一个外部真实进程需要处理”是否打算启动另一个JVM? – manurajhada
这是一个*子进程*。 *你*决定这个过程会做什么。当然,您可以在子进程中运行**另一个** JVM。但要明白:JVM完全运行**。这两个JVM之间没有任何魔术连接,所以如果你想与那个东西进行通信,你必须使用套接字或其他进程间通信方式! – GhostCat
好的。我如何在JVM中运行多个进程,这些进程之间没有共享内存?如果我使用ProcessBuilder,它将启动另一个JVM。我的每个http请求都是孤立的,但为每个请求启动另一个JVM并不是一个好方法。所以我想要实现的情况是在一个jvm中运行多个进程并为每个进程控制内存配额。 – manurajhada
*我们可以在一个JVM中运行多个进程吗?*是的。 *并且每个进程都应该有自己的内存配额?* No. –