我們可以在一個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. –