概述
浏览网页时,当你等待加载图片时可以阅读和滚动网页中的文本,这种方式不好吗?在字处理软件中,当你打开另一个需要编辑的文档时,可以让一个文档在后台打印又如何呢?也许你已经享受了在回复一封email同时又能下载带有大文件附件的好处。通过允许一个多线程程序在同一时间做多个任务就可以使得这些方便的功能成为可能。这本书可以帮助你学习这些必须的技巧并把此有用的功能与你的JAVA程序相结合。
什么是线程(What Is a Thread)
当现代操作系统想开始运行一个程序,它首先创建一个进程(Process)。进程是一个当前正在执行的程序。每个进程至少有一个正在运行的线程(Thread)。有时,线程也被认为是轻量级进程(lightweight process)。一个线程是程序的一个代码执行路径(a path of code execution),每个线程有属于自己的局部变量,程序计数器(指向正在执行的指令)和生命周期。许多现代操作系统允许在一个处理器中同时运行多个线程。当操作系统启动了JVM(Java虚拟机)之后,就创建了一个新进程。在此进程中可创建许多线程。
通常,JAVA代码的执行从main()方法开始,然后沿着程序的路径进行处理直到main()方法中的所有语句完成。这就是一个单线程(single thread)的例子。这个“main”线程由JVM来创建,然后该线程开始执行main()方法,执行main()中所有语句,最后当main()完成后,该线程就会死掉(die)。
JVM中第二个总在运行的线程是:垃圾回收线程(garbage collection thread)。该线程清除掉所有遗弃的对象并回收它们的内存。所以,即使一个把“hello world”输出到System.out的简单JAVA程序也正运行在多线程的环境中。其中包括两个线程,一个是主线程(main Thread),另一个为垃圾回收线程。
当一个JAVA程序包含了图形用户界面(GUI)时,JVM会自动启动多个线程。其中一个线程负责把GUI事件传递给程序中相应的方法,另外线程负责画GUI窗口。
例如,一个基于GUI程序的主线程负责完成一个复杂、长时间的计算。当该计算正在进行时,用户点击了“停止计算”按钮,此时GUI事件线程就会调用为此按钮写的事件处理代码来终止计算线程。试想,如果只有一个线程,二者(计算和终止计算)不可能同时进行,中断计算将是困难的。
分享到:
相关推荐
java多线程编程详解 里面具有详细的沼泽实例。
Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 ...
4JAVA编程高级-多线程编程
Java线程:概念与原理 Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-...
Java 语言 编程 - 多 线 程
Java网络编程-多个例子,多线程,连接池,文件传输
Java多线程-Socket编程
java线程编程方面-讲解
使用Java 2D API编程写程序,可以简化多线程编程;代码看上去绝对比VC++的多线程编码优雅。本示例一行注释一行代码,非常详细的说明了怎样使用Java 2D API来编写Java动画应用。 阅读对象:非常熟悉Java基本概念的...
0、相关概念理解 1、线程的组成以及线程的创建、启动和调度 2、线程的基本控制 3、选择创建线程的方法 4、使用Java技术中的 synchronized 关键字 5、线程交互 —wait 与 notify 6、线程同步
Java多线程编程实战指南...本书以基本概念、原理与方法为主线,辅以丰富的实战案例和生活化实例,并从Java虚拟机、操作系统和硬件多个层次与角度出发,循序渐进、系统地介绍Java平台下的多线程编程核心技术及相关工具。
JAVA多线程编程详解-详细操作例子JAVA多线程编程详解-详细操作例子
JAVA多线程编程技术PDF,是最经典的那个版本,多线程的所有知识点完爆读者
Java多线程编程实战指南-核心篇Java多线程编程实战指南-核心篇
电子书相关:包含4个有关JAVA线程的电子书(几乎涵盖全部有关...第五章 Java线程编程的例子 第六章 Java线程调度 第七章 Java线程调度例子 第八章 和同步相关的高级主题 第九章 多处理器机器上的并行化 第十章 线程组
java并发编程-超级大全整理
java多线程编程,十分详细地讲解java多线程编程技术,视频教程