- 浏览: 188299 次
- 性别:
- 来自: 上海
文章分类
最新评论
JVM:所有的jar程序,其运行环境完全是由JVM来提供,包括运行时,各类资源的调度,而JVM的架构,其设计为一个JVM里面可以运行多个java程序,JVM就像一个真正的“机器”,可以跑着多个程序。如果去看看一些企业级的JVM(例如tom cat,WAS),从OS的进程管理中,一般你只能看见一个JVM的进程(当然,你也可以起多个JVM,但JVM架构就是OS-JVM-APP的3层运行时模式),而看不见JVM里面运行的程序,而一个JVM里,可以跑多个java app。简单得说,JVM完全屏蔽了应用程序和OS之间的联系,而改用JVM充当了中间层,这也是一个真正跨平台运行时VM必须要做到的。只要是相同的JDK,JVM为所有在其中运行的程序,提供了完全一致的运行环境,而不论你是什么样的底层OS和硬件条件。因此这也是我在其他一篇答案中提到,JVM的特点是取底层OS和硬件环境的交集,从而保障这种一致性。而所有应用程序和底层资源的互动,一定是依赖JVM的传递和转换来实现。JVM真正实现了一个OS对应用程序运行时管理的所有功能。从开发环境角度和运行时角度,都是完全一致的真正VM.
在JVM的机制中,不同的程序,打包以后,他们都是在运行层级真正独立的程序(指程序应用他们相互之间的关系,而不是和JVM的关系),即便他们在包里使用了同样的类,运行时都是单独加载,单独运行的(及加载多遍)。
应用跟线程没什么关系,线程是个计算执行的概念,而应用上下文占用的是内存。你如果打印线程名称,就能看到应用线程是动态分配的,线程1可以在应用1出现,也可以在应用2出现。其实Tomcat是JVM的main进程启动的一个Socket服务,同时会加载应用的上下文环境、初始化执行线程池
项目之间的调用看你用什么方式,如果通过http访问,就相当于跨jvm;项目虽然都在一个虚拟机里,但属于不同的类加载器环境,除非定义SystemClassloader级别的静态变量,没想到有其他办法能引用调用,呵呵。 tomcat线程之间不可以相互调用,除非是自定义的多线程。
1、集群环境可能是多个jvm
2、一个java进程就是一个jvm,main方法启动的,同一个tomcat的多个web应用都在一个jvm里
3、jvm包含tomcat运行环境,tomcat加载了应用上下文,应用上下文加载spring运行环境
4、一个tomcat的各个项目之间是独立的上下文环境,如果通过http访问,也相当于跨jvm,不是引用调用
以上部分来自http://www.iteye.com/problems/77422
在JVM的机制中,不同的程序,打包以后,他们都是在运行层级真正独立的程序(指程序应用他们相互之间的关系,而不是和JVM的关系),即便他们在包里使用了同样的类,运行时都是单独加载,单独运行的(及加载多遍)。
应用跟线程没什么关系,线程是个计算执行的概念,而应用上下文占用的是内存。你如果打印线程名称,就能看到应用线程是动态分配的,线程1可以在应用1出现,也可以在应用2出现。其实Tomcat是JVM的main进程启动的一个Socket服务,同时会加载应用的上下文环境、初始化执行线程池
项目之间的调用看你用什么方式,如果通过http访问,就相当于跨jvm;项目虽然都在一个虚拟机里,但属于不同的类加载器环境,除非定义SystemClassloader级别的静态变量,没想到有其他办法能引用调用,呵呵。 tomcat线程之间不可以相互调用,除非是自定义的多线程。
1、集群环境可能是多个jvm
2、一个java进程就是一个jvm,main方法启动的,同一个tomcat的多个web应用都在一个jvm里
3、jvm包含tomcat运行环境,tomcat加载了应用上下文,应用上下文加载spring运行环境
4、一个tomcat的各个项目之间是独立的上下文环境,如果通过http访问,也相当于跨jvm,不是引用调用
以上部分来自http://www.iteye.com/problems/77422
发表评论
文章已被作者锁定,不允许评论。
-
Tomcat的四种基于HTTP协议的Connector性能比较
2017-11-28 10:39 531今天在osc上看到对Tomcat的四种基于HTTP协议的Con ... -
Jetty项目简介
2016-11-07 11:28 444jetty是一个开源、基于标准、全功能实现的Java服务器。它 ... -
windows7 64位下git和tortoisegit的安装和使用
2016-09-08 11:35 1556git https://github.com/git-for- ... -
ActiveMQ的集群多种部署方式
2016-08-15 16:56 673ActiveMQ的多种部署方式 ... -
待查看
2016-08-02 09:41 4011tair 2 tddl 3hsf 4 分库分表 pmd ... -
redis 原理
2016-07-10 14:50 8321 什么是redis redis是一个key-value存储 ... -
mybatis 帮助文档
2016-04-22 11:01 494http://www.mybatis.org/mybatis- ... -
Zabbix 监控
2016-04-11 09:54 412 -
jvm实时监控工具
2016-04-09 09:35 461 -
redis学习(java调用方式)
2016-04-07 17:56 486【redis数据结构 – 简介 ... -
SonarQube代码质量管理平台安装与使用
2016-03-21 16:13 491代码质量管理工具 http://blog.csdn.net/h ... -
jboss web服务器
2016-03-17 14:15 431 -
cat监控
2016-03-16 15:22 467 -
activeMq分发策略,请求应答
2016-02-16 10:41 696 -
Eclipse下使用TODO的方法
2016-01-22 13:48 800下面是在Eclipse下使用TODO的方法。 ------- ... -
zookeeper
2015-12-07 20:29 428zookeeper -
Xshell会话共享实现多台服务器同步操作
2015-11-30 17:50 25171. 打开终端Xshell, 菜单栏View -> 勾 ... -
Tomcat出现 PermGen space解决方案
2015-06-10 16:06 339PermGen space的全称是Permanent Gene ... -
eclipse 代码注释项
2015-06-09 09:03 477comments files:新建文件时候的文件注释,在pac ... -
跨数据库事务研究
2015-05-12 11:16 868两种方案: 1、分布式 ...
相关推荐
【标题】"Tomcat JVM参数调优"涉及的是在运行Apache Tomcat服务器时优化Java虚拟机(JVM)性能的过程。Tomcat是一个流行的开源Java应用服务器,它用于部署和运行Java Servlets和JavaServer Pages(JSP)。由于JVM是...
### Tomcat JVM内存设置方法详解 #### 一、前言 Tomcat作为一款广泛使用的Java应用服务器,其性能优化一直是开发者关注的重点之一。而在性能优化的过程中,合理设置JVM(Java Virtual Machine)内存是非常关键的一...
### Eclipse与Tomcat的JVM设置详解 #### 一、引言 在开发Java应用程序时,经常需要使用集成开发环境(IDE)与应用服务器进行配合。Eclipse是一款非常流行的Java IDE,而Tomcat则作为轻量级的应用服务器被广泛采用...
本文将深入探讨“java缓存代码,tomcat JVM配置”这一主题,包括Java缓存的实现方法以及如何对Tomcat服务器进行JVM配置和连接池设定,以提升系统效率。 首先,我们来看Java缓存代码。在Java中,缓存是一种常见的...
3. **线程与Servlet的关系** 每个HTTP请求都会分配一个单独的线程,这个线程负责调用Servlet实例的`service`方法。这样设计使得Servlet是无状态的,因为每个请求都有自己的执行线程,避免了线程安全问题。然而,...
《深入解析Tomcat JVM调优》 在Java应用服务器领域,Tomcat因其轻量级、高效和开源的特点,被广泛应用于各种Web应用的部署。然而,为了确保应用的高性能和稳定性,对Tomcat的JVM进行优化是必不可少的环节。本文将...
1. `-Xms` 和 `-Xmx`:与Eclipse相同,设定Tomcat的初始堆和最大堆大小。 2. `-XX:MaxDirectMemorySize`:如果应用程序使用DirectByteBuffer,这个选项可以设定直接内存大小。 **JVM内存管理** JVM内存分为几个区域...
### Tomcat JVM 内存调整方法与原理 #### 一、背景介绍 在日常的运维工作中,经常会遇到 Tomcat 应用服务器出现内存溢出的问题,表现为 `java.lang.OutOfMemoryError` 异常。这类问题通常是由于 JVM(Java 虚拟机...
Tomcat7 安装使用及 JVM 连接数参数调优 Tomcat7 是一个流行的 Java Web 服务器,主要用于部署和管理基于 Java 的 Web 应用程序。为了确保 Tomcat7 的稳定运行和高效性能,需要对其进行合理的安装、配置和优化。...
### 如何配置Tomcat的JVM虚拟机内存大小:深入解析与最佳实践 #### 引言 在IT领域,特别是Web应用服务器管理中,正确配置Java虚拟机(JVM)的内存大小对于确保应用程序的稳定性和性能至关重要。本文将详细探讨如何...
### Java虚拟机(JVM)内存设置与调优详解 #### 引言 在现代软件开发中,Java虚拟机(JVM)作为执行Java字节码的核心组件,其性能直接影响到Java应用的运行效率与稳定性。特别是在大数据处理场景下,合理设置JVM内存...
这两类线程的主要区别在于它们的生命周期与JVM的关系。 1. **用户线程**:用户线程是应用程序中常见的线程类型,它们执行应用程序的核心业务逻辑。只要至少有一个用户线程在运行,JVM就会继续运行,即使所有的守护...
Tomcat作为流行的Java应用服务器,其性能优化也与JVM设置紧密相关。本篇文章将深入探讨JVM参数调优以及如何针对Tomcat进行优化。 首先,JVM调优主要包括堆内存分配、垃圾收集器选择、线程池配置、类加载机制调整等...
#### 一、理解Tomcat与JVM的关系 Tomcat作为一款开源的Servlet容器,其运行依赖于JVM(Java虚拟机)。这意味着,要优化Tomcat的性能,首先需要对JVM进行合理的配置。本文将深入探讨如何通过调整JVM的设置来优化...
本篇文件内容主要介绍了JVM优化的第三部分,重点围绕Tomcat参数调优、JVM参数调优、JVM字节码优化以及代码优化等几个方面。下面是针对这些知识点的详细解释: 1. Tomcat参数调优 在Tomcat参数调优部分,首先介绍了...
### JVM-Tomcat线程-数据库连接池设置建议 #### 一、JVM参数设置 在设置JVM参数时,我们需要遵循一定的原则以确保应用程序能够高效稳定地运行。以下是一些具体的设置指南: 1. **Java堆大小设置**: - `Xmx` 和 ...
### Tomcat-JVM调优详解 #### 一、概述 在服务器端应用开发与部署过程中,JVM(Java虚拟机)的性能优化是一项至关重要的任务。对于基于Java的应用程序而言,Tomcat作为最常见的Web容器之一,其运行时的性能表现...
### 如何设置Tomcat的JVM虚拟机内存大小 在部署和运行基于Java的应用程序时,经常需要调整Tomcat服务器的JVM(Java虚拟机)内存配置以优化性能。合理设置JVM内存对于确保应用程序稳定运行至关重要。本文将详细介绍...
这篇文章将深入探讨Tomcat调优与JVM参数优化的各个方面,帮助你提升服务器性能。 首先,我们来了解一下Tomcat调优的基础知识。Tomcat调优主要包括以下几个方面: 1. **线程池配置**:调整`maxThreads`和`...