`
programmer
  • 浏览: 75673 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

多个线程并发装载一个类,结果是什么?

阅读更多
JVM规范里有规定,同一个命名空间(同一个类装载器装载的类),那么类的类型对象(类型数据)在堆里只一个一个。当多个线程同时装载一个类,结果又是什么样的呢?
假如有一个A.class 类(web应用),当用到它的时候,那么application server 指定一个类装载器来装载这个类。
类装载器简单的装载逻辑:
1.看看A.class 类有没有被装载,如果没有被装载那么进行装载,然后连接,初始化,在堆里创建一个Class 类型数据对象(A的类型对象,不是A的实例对象)。
2.如果被装载。那么就不需要执行 连接,初始化,也不需要在堆里创建一个Class 类型数据对象。
我的问题是:
如果是两个两个线程同时并发来使用A.class类,会不会导致A.class类型对象(类型数据)在堆里有两份呢?
除非JVM有某种机制来解决并发装载一个类的问题。

分享到:
评论

相关推荐

    Loader异步装载(有demo)

    android 3.0 开始引进。 让Activity/fragment 异步加载数据,变得简单。... Loader对于并发,可以用过Loader管理器统一管理,所以更适合批量处理多个异步任务的处理(当然内部仍然是多线程)。 Loader异步装载(有demo)

    java核心面试

    JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。 1说说JVM原理?内存泄露与溢出区别,何时产生内存泄露? 编译源代码为...

    java核心面试技术点

    JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。 1说说JVM原理?内存泄露与溢出区别,何时产生内存泄露? 编译源代码为...

    Erlang安装手册

     ● 分布式 - 一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点)  ● 健壮性 - Erlang具有多种基本的错误检测能力,它们能够用于构建容错系统。  ● 软实时性- Erlang支持可...

    JAVA上百实例源码以及开源项目

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    c#学习笔记.txt

    一个结构不能从另一个结构或类继承,而且不能作为一个类的基。但是,结构从基类 Object 继承。结构可实现接口,其方式同类完全一样。 [c ] 与 C 不同,无法使用 struct 关键字声明类。在 C# 中,类与结构在语义上是...

    二十三种设计模式【PDF版】

    保证一个类只有一个实例,并提供一个访问它的全局访问点 设计模式之 Factory(工厂方法和抽象工厂) 使用工厂模式就象使用 new 一样频繁. 设计模式之 Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些...

    JAVA上百实例源码以及开源项目源代码

    图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...

    网络安全管理的维护.pptx

    一个进程可以有一个或多个线程;在多处理器环境中,线程是处理器间分配的基本单元。 网络安全管理的维护全文共104页,当前为第9页。 14.3.3 减少信息流量 当环境允许时,减少信息流量的方式是最好的。因为不论当前...

    网络安全管理的维护(1).pptx

    一个进程可以有一个或多个线程;在多处理器环境中,线程是处理器间分配的基本单元。 网络安全管理的维护(1)全文共104页,当前为第9页。 14.3.3 减少信息流量 当环境允许时,减少信息流量的方式是最好的。因为不论...

    java源码包---java 源码 大量 实例

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    CyanOS:编码操作系统以确保隔离期间保持理智

    CyanOS的 这是什么 ? 它是一个x86整体抢占式内核,使用C ++ 20和几行x86 Assembly... 就线程和进程而言并发。 基本的ELF装载机 任务同步(自旋锁,信号灯和互斥锁) 进程间通信(使用管道和插座) 虚拟文件系统

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...

    java源码包2

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包3

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    java源码包4

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    NHibernate参考文档 2.0.0 chm

    1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得...

    NHibernate中文帮组文档(2008.11月更新)

    1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得...

Global site tag (gtag.js) - Google Analytics