Java多线程编程核心技术
(副标题):无 ;
(作者): 高洪岩 ;
内容简介:
1.1 进程和多线程概述
本书主要介绍在Java语言中使用的多线程技术,但讲到多线程技术时不得不提及“进程”这个概念,“百度百科”对“进程”的解释如图1-1所示。
图1-1 进程的定义
初看这段文字十分抽象,难以理解,那么再来看如图1-2所示的内容。
图1-2 Windows 7系统中的进程列表
难道一个正在操作系统中运行的exe程序可以理解成一个“进程”?没错!
通过查看“Windows任务管理器”窗口中的列表,完全可以将运行在内存中的exe文件理解成进程——进程是受操作系统管理的基本运行单元。
程序是指令序列,这些指令可以让CPU完成指定的任务。.java程序经编译后形成.class文件,在Windows中启动一个JVM虚拟机相当于创建了一个进程,在虚拟机中加载class文件并运行,在class文件中通过执行创建新线程的代码来执行具体的任务。创建测试用的代码如下:
public class Test1 {
public static void main(String[] args) {
try {
Thread.sleep(Integer.MAX_VALUE);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
在没有运行这个类之前,任务管理器中以“j”开头的进程列表如图1-3所示。
图1-3 任务管理器中以“j”开头的进程
Test1类重复运行3次后的进程列表如图1-4所示。可以看到,在任务管理器中创建了3个javaw.exe进程,说明每执行一次main()方法就创建一个进程,其本质上就是JVM虚拟机
目录预览:
Java多线程编程核心技术(第2版)
第1章 Java多线程技能
1.1 进程和多线程概述
1.2 使用多线程
1.2.1 继承Thread类
1.2.2 使用常见命令分析线程的信息
1.2.3 线程随机性的展现
1.2.4 执行start()的顺序不代表执行run()的顺序
1.2.5 实现Runnable接口
1.2.6 使用Runnable接口实现多线程的优点
1.2.7 实现Runnable接口与继承Thread类的内部流程
1.2.8 实例变量共享造成的非线程安全问题与解决方案
1.2.9 Servlet技术造成的非线程安全问题与解决方案
1.2.10 留意i--与System.out.println()出现的非线程安全问题
1.3 currentThread()方法
1.4 isAlive()方法
1.5 sleep(long millis)方法
1.6 sleep(long millis,int nanos)方法
1.7 StackTraceElement[]getStackTrace()方法
1.8 static void dumpStack()方法
........