当前位置: 首页 > 面试题库 >

JVM是否可以同时运行多个程序?

夏华藏
2023-03-14
问题内容

JVM是否可以同时运行多个程序?如果是这样,怎么办?如果没有,为什么?

要运行程序,我们只需

java ProgramName

但是我们可以使用同一个JVM实例来运行另一个程序吗?


问题答案:

答案取决于您对“程序”的定义。具有main方法并以其开头的Java程序java NameOfClass通常无法在同一JVM中运行,因为没有内置的资源或名称空间分隔。例如,如果两个程序使用同一库的冲突版本怎么办?

我们还提供了旨在共享JVM的应用程序,例如企业应用程序。这些程序设计为在“应用程序服务器”的上下文中运行,该服务器基本上是用于运行其他程序的程序。应用程序服务器使用类加载器和安全管理器将应用程序资源分开。例如,两个应用程序可能使用相冲突的库版本或相冲突的类名,并且由于通过不同的类加载器进行加载而仍共享JVM。



 类似资料:
  • 我有一个gradle项目,有3个使用spring boot的模块。这3个spring boot应用程序并行运行并相互交互。 例如,MODULE1将数据保存在MODULE2中,而MODULE3通过Rest API从MODULE2检索数据。 我想对这3个spring boot应用程序之间的交互进行集成测试(即,让它们分别在不同的端口上运行)。有可能吗?怎样 我知道我们可以为单个spring boot应

  • 问题内容: 因此,我的目标是让函数启动自己的线程,以便可以并行运行,而不必等待上一个线程完成。问题在于,它似乎不是多线程的(意味着一个线程在另一个线程开始之前就完成了)。 我也有该函数的内部,但似乎启动的线程的标识与从其运行python脚本的主线程相同。我认为我的方法不正确。 问题答案: 这是常见错误,容易出错。 只需在主线程中一次执行您的函数,然后将(我想为您函数的返回值)作为函数传递给线程,这

  • 问题内容: 如何在一台机器上运行多个JVM?您如何在其他JVM中调用方法? 问题答案: 如何在一台机器上运行多个JVM? 只需启动多个进程即可。 您如何在其他JVM中调用方法? 使用任何类型的RPC框架(RMI,EJB,Web服务等)。

  • 问题内容: 假设我在同一台计算机上同时运行两个Java程序。这些程序将在单个JVM实例中运行还是在两个不同的JVM实例中运行? 问题答案: 如果您使用命令(从命令行)开始每个命令,它们将作为完全独立的JVM运行。 “程序”可以作为在一个JVM中运行的单独线程启动。

  • 问题内容: 如果是跑它运行在您的文件结尾通过运行启动格式的功能和使用(* T testing.T)模块。我想知道文件中的每个功能是同时运行还是确定地分别运行每个功能?是否为每个人创建一个执行例程?如果确实为每个例程创建了一个go例程,是否可以某种方式监视go例程?是否有可能做类似的事情并为每个实例获取一个实例并对其进行监控,诸如此类? 注意:这个问题假设您使用go(测试)随附的测试框架。 问题答案

  • 我在dockerized应用程序和Memcached上遇到了一个问题,要存储一些值,显然,当a启动一个运行Spymemcached客户端的新Docker实例时,所有存储在缓存中的数据都是无效的,所以如果我之前在节点1的缓存中存储了一些值,然后启动节点2,这些值将从Memcached服务器中清除,最后如果a在节点1上再次存储相同的值,并在节点2上查询,它们将共享到两个节点之外,而不清除数据。是预期的