Java高并发编程详解:多线程与架构设计
(副标题):无 ;
(作者): 汪文君 ;
内容简介:
9.1 类的加载过程简介
类的加载过程一般分为三个比较大的阶段,分别是加载阶段、连接阶段和初始化阶段,如图9-1所示。
图9-1 类加载的过程
·加载阶段:主要负责查找并且加载类的二进制数据文件,其实就是class文件。
·连接阶段:连接阶段所做的工作比较多,细分的话还可以分为如下三个阶段。
·验证:主要是确保类文件的正确性,比如class的版本,class文件的魔术因子是否正确。
·准备:为类的静态变量分配内存,并且为其初始化默认值。
·解析:把类中的符号引用转换为直接引用。
·初始化阶段:为类的静态变量赋予正确的初始值(代码编写阶段给定的值)。
当一个JVM在我们通过执行Java命令启动之后,其中可能包含的类非常多,是不是每一个类都会被初始化呢?答案是否定的,JVM对类的初始化是一个延迟的机制,即使用的是lazy的方式,当一个类在首次使用的时候才会被初始化,在同一个运行时包下,一个Class只会被初始化一次(运行时包和类的包是有区别的,关于这点我们将在第10章中进行详细的讲解),那么什么是类的主动使用和被动使用呢?接下来我们通过一些实例来进行相应的总结。
目录预览:
Java高并发编程详解:多线程与架构设计
第1章 快速认识线程
1.1 线程的介绍
1.2 快速创建并启动一个线程
1.3 线程的生命周期详解
1.4 线程的start方法剖析:模板设计模式在Thread中的应用
1.5 Runnable接口的引入以及策略模式在Thread中的使用
1.6 本章总结
第2章 深入理解Thread构造函数
2.1 线程的命名
2.2 线程的父子关系
2.3 Thread与ThreadGroup
2.4 Thread与Runnable
2.5 Thread与JVM虚拟机栈
2.6 守护线程
2.7 本章总结
第3章 Thread API的详细介绍
3.1 线程sleep
3.2 线程yield
3.3 设置线程的优先级
........