jvm实例,tomcat容器,spring容器,在内存中的关系5

1.一个java项目对应一个jvm 吗? 
2.tomcat里面加载多个java项目 ,是不是用了一个jvm? 
3.java项目中的spring容器,部署到tomcat容器,启动tomcat以后的jvm实例 ,在内存中是怎么一个包含关系?

如果说 一个程序启动一个jvm实例,一个项目能保证在一个jvm里面吗 
另外 如果一个tomcat加载n各项目 他们之间彼此调用(比如通过http访问),是不是跨jvm? 
谢谢


问题补充:

csslisi 写道
1、集群环境可能是多个jvm 
2、一个java进程就是一个jvm,main方法启动的,同一个tomcat的多个web应用都在一个jvm里 
3、jvm包含tomcat运行环境,tomcat加载了应用上下文,应用上下文加载spring运行环境 
4、一个tomcat的各个项目之间是独立的上下文环境,如果通过http访问,也相当于跨jvm,不是引用调用

谢谢你的回复 
我想问下既然多个应用在一个tomcat下的话,tomcat又在一个jvm里面 
是不是说 启动tomcat里面的每个项目只是用了线程? 
这里面的项目之间的通信是进程间通信 还是属于线程间通信呢? 
如果跨jvm肯定是进程间通信了吧 但你讲道 这些项目在同一个jvm里面 能在解释下吗


问题补充:

csslisi 写道
应用跟线程没什么关系,线程是个计算执行的概念,而应用上下文占用的是内存。你如果打印线程名称,就能看到应用线程是动态分配的,线程1可以在应用1出现,也可以在应用2出现。其实Tomcat是JVM的main进程启动的一个Socket服务,同时会加载应用的上下文环境、初始化执行线程池

项目之间的调用看你用什么方式,如果通过http访问,就相当于跨jvm;项目虽然都在一个虚拟机里,但属于不同的类加载器环境,除非定义SystemClassloader级别的静态变量,没想到有其他办法能引用调用,呵呵。 
tomcat线程之间不可以相互调用,除非是自定义的多线程。

谢谢你的回复 
最后再多问一句啊 
两个项目部署在一个tomcat里面和两个项目分别部署在两个tomcat里面 两种情况 
这两个项目之间的数据传输(比如通过httpClient访问),都是跨jvm,是不是两种情况的效率完全一样呢? 

 
 

jvm容器的关系的更多相关文章

  1. java语言:Linux与JVM的内存关系分

    在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用大约800m.从表面上,物理内存应该 ...

  2. 转: 关于Linux与JVM的内存关系分析

    转自: http://tech.meituan.com/linux-jvm-memory.html Linux与JVM的内存关系分析 葛吒2014-08-29 10:00 引言 在一些物理内存为8g的 ...

  3. Linux与JVM的内存关系分析

    引言 在一些物理内存为8g的server上,主要执行一个Java服务,系统内存分配例如以下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m. 从表面 ...

  4. Linux与JVM的内存关系分析(转)

    引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m.从表面上,物理内存 ...

  5. jvm内存模型-回收算法-和内存分配以及jdk、jre、jvm是什么关系(阿里,美团,京东面试题)

    1.什么是jvm?(1)jvm是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现的.(2)jvm包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个 ...

  6. spring容器和springmvc容器,以及web容器的关系

    说到spring和springmvc,其实有很多人分不清他们有什么区别,认为它俩是一样的,如果你问他项目里用的什么MVC技术,他会说我们用的spring和mybatis,或者spring和hibern ...

  7. JDK、JRE、JVM之间的关系

       JDK.JRE.JVM之间的关系 1.JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads ...

  8. SpringMVC系列(十五)Spring MVC与Spring整合时实例被创建两次的解决方案以及Spring 的 IOC 容器和 SpringMVC 的 IOC 容器的关系

    一.Spring MVC与Spring整合时实例被创建两次的解决方案 1.问题产生的原因 Spring MVC的配置文件和Spring的配置文件里面都使用了扫描注解<context:compon ...

  9. 转: Linux与JVM的内存关系分析

    Linux与JVM的内存关系分析 引言 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使 ...

随机推荐

  1. Java接口获取系统配置信息

    Java获取当前运行系统的配置信息 接口:System.getProperty() 参数 描述 java.version Java运行时环境版本 java.vendor Java运行时环境供应商 ja ...

  2. 多重共性和VIF检验

    图片来源https://wenku.baidu.com/view/7008df8383d049649b66581a.html 和 https://wenku.baidu.com/view/6acdf9 ...

  3. PytorchZerotoAll学习笔记(三)--自动求导

    Pytorch给我们提供了自动求导的函数,不用再自己再推导计算梯度的公式了 虽然有了自动求导的函数,但是这里我想给大家浅析一下:深度学习中的一个很重要的反向传播 references:https:// ...

  4. Python Fileinput 模块介绍

    作者博文地址:http://www.cnblogs.com/spiritman/ fileinput模块提供处理一个或多个文本文件的功能,可以通过使用for循环来读取一个或多个文本文件的所有行. [默 ...

  5. 到底什么是BFC、IFC、GFC和FFC,次奥?

    软件开发的一般被称为民工,搞前端的,有人形容为是掏粪工,说白了连民工级别高都没有.说直接点就是个制作界面的,注意,连设计界面的都算不上,一般前端都是拿着设计稿去照这样子开发的. 说这些无非是觉得前端前 ...

  6. mininet实验 连接floodlight控制器

    参考博客一 参考博客二 事先准备-floodlight安装 Java安装方法及环境变量配置 执行ifconfig命令获取floodlight所在服务器的IP地址. 1.启动floodlight jav ...

  7. 软工1816 · Alpha冲刺(8/10)

    团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员1(组长):王彬 过去两天完成了哪些任务 推进前后端各个接口的整合 学习jQuery基本语法,为beta阶段的商铺页面做准备 接下 ...

  8. Lucene 常用名词解析

    索引的创建:IndexWriter: 用于创建索引Directory: 这个可以用来定义我们的索引是存放在内存中还是在硬盘上Analyzer: 分词器 有几种()这个地方需要好好解释下Document ...

  9. TCP系列46—拥塞控制—9、SACK下的快速恢复与Limited transmit

    一.概述 1.SACK下的特殊处理过程 SACK下的拥塞控制处理是linux中拥塞控制的实现依据,再次强调一遍RFC6675的重要性,linux中拥塞控制主体框架的实现是与RFC6675一致的,所以如 ...

  10. mosquitto启动时Address already in use 和 一般的 Address already in use

    对于mosquitto启动时的地址占用错误,可能是mosquitto启动之后没关掉,进程一直占用了端口.查看mosquitto相关的进程,然后关掉就可启动了. 关掉mosquitto进程即可 参考: ...