`

tomcat jvm 与线程

 
阅读更多
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
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Tomcat JVM的参数调优

    【标题】"Tomcat JVM参数调优"涉及的是在运行Apache Tomcat服务器时优化Java虚拟机(JVM)性能的过程。Tomcat是一个流行的开源Java应用服务器,它用于部署和运行Java Servlets和JavaServer Pages(JSP)。由于JVM是...

    Tomcat JVM内存设置方法

    ### Tomcat JVM内存设置方法详解 #### 一、前言 Tomcat作为一款广泛使用的Java应用服务器,其性能优化一直是开发者关注的重点之一。而在性能优化的过程中,合理设置JVM(Java Virtual Machine)内存是非常关键的一...

    eclipse与tomcat的JVM设置

    ### Eclipse与Tomcat的JVM设置详解 #### 一、引言 在开发Java应用程序时,经常需要使用集成开发环境(IDE)与应用服务器进行配合。Eclipse是一款非常流行的Java IDE,而Tomcat则作为轻量级的应用服务器被广泛采用...

    java缓存代码,tomcat JVM配置

    本文将深入探讨“java缓存代码,tomcat JVM配置”这一主题,包括Java缓存的实现方法以及如何对Tomcat服务器进行JVM配置和连接池设定,以提升系统效率。 首先,我们来看Java缓存代码。在Java中,缓存是一种常见的...

    tomcat中多线程对于servlet处理的4篇资料

    3. **线程与Servlet的关系** 每个HTTP请求都会分配一个单独的线程,这个线程负责调用Servlet实例的`service`方法。这样设计使得Servlet是无状态的,因为每个请求都有自己的执行线程,避免了线程安全问题。然而,...

    Tomcat JVM调优-TomcatJVM.zip

    《深入解析Tomcat JVM调优》 在Java应用服务器领域,Tomcat因其轻量级、高效和开源的特点,被广泛应用于各种Web应用的部署。然而,为了确保应用的高性能和稳定性,对Tomcat的JVM进行优化是必不可少的环节。本文将...

    ECLIPSE,TOMCAT,JVM内存设置

    1. `-Xms` 和 `-Xmx`:与Eclipse相同,设定Tomcat的初始堆和最大堆大小。 2. `-XX:MaxDirectMemorySize`:如果应用程序使用DirectByteBuffer,这个选项可以设定直接内存大小。 **JVM内存管理** JVM内存分为几个区域...

    tomcat jvm内存修改

    ### Tomcat JVM 内存调整方法与原理 #### 一、背景介绍 在日常的运维工作中,经常会遇到 Tomcat 应用服务器出现内存溢出的问题,表现为 `java.lang.OutOfMemoryError` 异常。这类问题通常是由于 JVM(Java 虚拟机...

    tomcat7安装使用及jvm连接数参数调优

    Tomcat7 安装使用及 JVM 连接数参数调优 Tomcat7 是一个流行的 Java Web 服务器,主要用于部署和管理基于 Java 的 Web 应用程序。为了确保 Tomcat7 的稳定运行和高效性能,需要对其进行合理的安装、配置和优化。...

    如何配置Tomcat的JVM虚拟机内存大小

    ### 如何配置Tomcat的JVM虚拟机内存大小:深入解析与最佳实践 #### 引言 在IT领域,特别是Web应用服务器管理中,正确配置Java虚拟机(JVM)的内存大小对于确保应用程序的稳定性和性能至关重要。本文将详细探讨如何...

    java虚拟机jvm及Tomcat中的jvm有关内存的设置与调优

    ### Java虚拟机(JVM)内存设置与调优详解 #### 引言 在现代软件开发中,Java虚拟机(JVM)作为执行Java字节码的核心组件,其性能直接影响到Java应用的运行效率与稳定性。特别是在大数据处理场景下,合理设置JVM内存...

    JVM中的守护线程示例详解

    这两类线程的主要区别在于它们的生命周期与JVM的关系。 1. **用户线程**:用户线程是应用程序中常见的线程类型,它们执行应用程序的核心业务逻辑。只要至少有一个用户线程在运行,JVM就会继续运行,即使所有的守护...

    jvm虚拟机参数调优,tomcat调优

    Tomcat作为流行的Java应用服务器,其性能优化也与JVM设置紧密相关。本篇文章将深入探讨JVM参数调优以及如何针对Tomcat进行优化。 首先,JVM调优主要包括堆内存分配、垃圾收集器选择、线程池配置、类加载机制调整等...

    tomcat-jvm优化

    #### 一、理解Tomcat与JVM的关系 Tomcat作为一款开源的Servlet容器,其运行依赖于JVM(Java虚拟机)。这意味着,要优化Tomcat的性能,首先需要对JVM进行合理的配置。本文将深入探讨如何通过调整JVM的设置来优化...

    JVM优化3(Tomcat参数调优,JVM参数调优,jvm字节码,代码优化).pdf

    本篇文件内容主要介绍了JVM优化的第三部分,重点围绕Tomcat参数调优、JVM参数调优、JVM字节码优化以及代码优化等几个方面。下面是针对这些知识点的详细解释: 1. Tomcat参数调优 在Tomcat参数调优部分,首先介绍了...

    JVM-Tomcat线程-数据库连接池设置建议.docx

    ### JVM-Tomcat线程-数据库连接池设置建议 #### 一、JVM参数设置 在设置JVM参数时,我们需要遵循一定的原则以确保应用程序能够高效稳定地运行。以下是一些具体的设置指南: 1. **Java堆大小设置**: - `Xmx` 和 ...

    tomcat-jvm调优

    ### Tomcat-JVM调优详解 #### 一、概述 在服务器端应用开发与部署过程中,JVM(Java虚拟机)的性能优化是一项至关重要的任务。对于基于Java的应用程序而言,Tomcat作为最常见的Web容器之一,其运行时的性能表现...

    如何设置Tomcat的JVM虚拟机内存大小

    ### 如何设置Tomcat的JVM虚拟机内存大小 在部署和运行基于Java的应用程序时,经常需要调整Tomcat服务器的JVM(Java虚拟机)内存配置以优化性能。合理设置JVM内存对于确保应用程序稳定运行至关重要。本文将详细介绍...

    Tomcat 调优及 JVM 参数优化

    这篇文章将深入探讨Tomcat调优与JVM参数优化的各个方面,帮助你提升服务器性能。 首先,我们来了解一下Tomcat调优的基础知识。Tomcat调优主要包括以下几个方面: 1. **线程池配置**:调整`maxThreads`和`...

Global site tag (gtag.js) - Google Analytics