![](https://csdnimg.cn/release/download_crawler_static/839509/bg1.jpg)
中南论坛 2007年第 2期
Java多线程技术
阳小 兰
(武汉科技大学中南分校 信息工程学院,湖北 武汉 430223)
摘 要 :本文首先介 绍了线程的有关概念 ,接 着介 绍 了线程 的生命 期及其状 态间的转换 ,多线程的调度
原则 ,线程的死锁 ,详细 阐述 了多线程的两种 实现 方法:由 Thread类派 生子类 ;实现 Runnable接 口。
关键词 :Java语言 ;进程 ;多线程 ;线程调 度;死锁
中图分类号 :TP312JA 文献标识码 :A
1 引言
多线 程编程是 Java语 言 的一个 重要 特 色 ,Java
对创建多线程程 序提供 了广泛 的支持 ,Java的多线
程是一个类或程 序执行和 管理 多个线程 的能 力,每
个执行线程可独 立执行其他线 程或 与其他线 程 同步
执行。Java的多线 程机 制能够很 方便地 创建 和运行
多个独立 的线程 的程序 ,并且 可 以创建多个 同步 线
程 ,实现 多个任 务的 同步执行 ,这 机制对 于实 现
资源共享 、防止 “死锁” 现象 的 出现极 为有用 。多
线程 的程序能更 好地表 达和解决 具体 问题 ,是计算
机应用开发和程序实现的发展趋势。
2 Java语言的线程
2、1线程相关的概念
程序是解决某一 问题 的代码 系列 ,是一段 静 态
的代码 。进程是 一个动 态的概 念 ,它是程 序的一 次
动态执行过程 ,对应代 码从加 载 、运 行开 始到运 行
完毕的一 个完 整 的过程 ,这 个过 程 是进 程从 产 生 、
发展到消亡的过程 。线程又称为 “轻量进程”,是进
程 中一个顺序 的执行流 ,一个 进程 在其执 行的过 程
中 ,可以形成 多个执 行线索 ,每个 执行线 索就是 一
个线程 。线程也 是一个 动态 的概念 ,它对 应一个 程
序段的一次动态 的执行 过程 。一个 进程 中可 以包 含
一
个或多个线程 ,线程是 比进程更小的单元 。
多线程指 的是在 一个程 序 中可以同 时运 行多 个
不 同的线程 ,即一个程 序 中包 含有多 个执行 流 ,借
以执行不同的任务 。
虽然线程与进程都 是顺 序执 行 的指令序 列,但
它们之间是有 区别 的。一 方 面 ,进程 是 一 个实 体 ,
每个进程都有 自己独 立的状 态 ,并 有 自己的专用 数
据段 ;创建进程时 ,必须建立 和复制其专用数 据段。
而线程则相互共享数 据段 ,同一程 序 中的所有 线程
只有一个数 据段 ,以避免进 行无谓 的数据 复制 ,因
此线程 的建立 和线 程 间的切 换速 度 大大优 于进 程。
另一方面 线 程又具 备进 程的大 多数优 点。但 是,
由于多个线程共 享一个 数据段 ,所 以 ,也 出现 了数
据访问过程的互斥和 同步 问题 ,使 得 系统管理 功能
变得相对复杂。
将进程划分成 多个线程 ,目的是 为 了实现 并行
程序设计 ,在 同一地 址空 问中执行 多个控 制流 ,减
少并行执行时进程 间切换 的系统 开销 ,因此 可以大
大提高应用程序 的执行效率。
2、2线程 的生命期与状态转换
线程同进程 一样 ,是一 个动态 的概念 ,所 以线
程同进程一样 ,也有一个从产生到消亡的生命周期 ,
在其生命周期 中,程序 可以对线 程进 行各种 控制操
作 。一个新 建的线程 的生命 期中有如下 5种状态 。
(1)新建态 (Newborn)
当线程用 n@w运算符 创建但 还未执 行 的这段时
间里 ,它处于 新建状 态中,此时 ,线 程对象 已被分
配了相应的内存空 问并被初始化 。
创建线 程 的语句可以表示如下 :Threaad tl=
n@w Th read ( ):
收稿 日期 :2006—11—25
作者简介 :阳小兰 (1978一),女,湖北广水人,武汉科技大学中南分校信息工程学院讲师。
维普资讯 http://www.cqvip.com