我是靠谱客的博主 英勇月饼,最近开发中收集的这篇文章主要介绍当运行一个Java程序时_当多个java程序在同一台机器上运行时,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Stephen C..

77

1)如果我有一个用java编写的Web服务,它将需要一个JVM实例来运行.那么JVM可以成为一个守护进程吗?

是的,它可以.如何完成取决于O/S和Web服务器容器本身.

2)如果是,当我们运行任何其他Java应用程序时,它将使用此JVM实例或创建一个新实例?

不可以.每个Java应用程序都使用独立的JVM.

每个JVM都是一个单独的进程,这意味着不存在堆栈,堆等的共享.(通常,可以共享的唯一内容是包含核心JVM和本机库代码的只读段......与普通进程可能共享代码段的方式相同.)

3)任何机器可用的主存储器是恒定的.当我们同时启动n个java进程而不提供任何初始堆大小时,堆大小如何在进程之间分配?

如果不指定大小,则决定堆大小的机制取决于您使用的JVM /平台/版本,以及您是使用"客户端"还是"服务器"模型(针对Hotspot JVM).启发式算法没有考虑其他JVM的数量或大小.

实际上,您可能最好直接指定堆大小.

4)是否存在管理n个JVM实例的任何进程,还是由OS本身管理?

都不是.JVM实例的数量由可以启动进程的各种操作的行为决定; 例如守护程序脚本,命令脚本,用户在命令行键入命令,等等.最终,如果资源耗尽,操作系统可能会拒绝启动任何其他进程,但JVM与其他进程的处理方式不同.

5)当GC期间发生停止世界时,其他JVM实例(我假设的不同线程)是否受到影响?

不.JVM是独立的流程.他们不共享任何可变状态.垃圾收集独立地在每个JVM上运行.

最后

以上就是英勇月饼为你收集整理的当运行一个Java程序时_当多个java程序在同一台机器上运行时的全部内容,希望文章能够帮你解决当运行一个Java程序时_当多个java程序在同一台机器上运行时所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部