java多线程

java 多线程

发信人: Nil (我要腐烂), 信区: java
标 题: 编写多线程的 Java 应用程序
发信站: 酒井BBS (Tue Apr 17 10:46:27 2001), 转信

编写多线程的 Java 应用程序
如何避免当前编程中最常见的问题

Alex Roetter


Java Thread API 允许程序员编写具有多处理机制优点的应用程序,在后台处理任务的


同时
保持用户所需的交互感。Alex Roetter 介绍了 Java Thread API,并概述多线程可能引起
的问题以及常见问题的解决方案。
几乎所有使用 AWT 或 Swing 编写的画图程序都需要多线程。但多线程程序会造成许多困难
,刚开始编程的开发者常常会发现他们被一些问题所折磨,例如不正确的程序行为或死锁。

在本文中,我们将探讨使用多线程时遇到的问题,并提出那些常见陷阱的解决方案。
1. 线程是什么?
一个程序或进程能够包含多个线程,这些线程可以根据程序的代码执行相应的指令。多线程
看上去似乎在并行执行它们各自的工作,就像在一台计算机上运行着多个处理机一样。在多
处理机计算机上实现多线程时,它们确实可以并行工作。和进程不同的是,线程共享地址空
间。也就是说,多个线程能够读写相同的变量或数据结构。
编写多线程程序时,你必须注意每个线程是否干扰了其他线程的工作。可以将程序看作一个
办公室,如果不需要共享办公室资源或与其他人交流,所有职员就会独立并行地工作。某个
职员若要和其他人交谈,当且仅当该职员在“听”且他们两说同样的语言。此外,只有在复
印机空闲且处于可用状态(没有仅完成一半的复印工作,没有纸张阻塞等问题)时,职员才
能够使用它。在这篇文章中你将看到,在 Java 程序中互相协作的线程就好像是在一个组织
良好的机构中工作的职员。
在多线程程序中,线程可以从准备就绪队列中得到,并在可获得的系统 CPU 上运行。操作
系统可以将线程从处理器移到准备就绪队列或阻塞队列中,这种情况可以认为是处理器“挂
起”了该线程。同样,Java 虚拟机 (JVM) 也可以控制线程的移动——在协作或抢先模型中
——从准备就绪队列中将进程移到处理器中,于是该线程就可以开始执行它的程序代码。

协作式线程模型允许线程自己决定什么时候放弃处理器来等待其他的线程。程序开发员可以


精确地决定某个线程何时会被其他线程挂起,允许它们与对方有效地合作。缺点在于某些恶
意或是写得不好的线程会消耗所有可获得的 CPU 时间,导致其他线程“饥饿”。
在抢占式线程模型中,操作系统可以在任何时候打断线程。通常会在它运行了一段时间(就
是所谓的一个时间片)后才打断它。这样

相关文档
java多线程学习经典教程
1) :适合多个相同的程序代码的线程去处理同一个资源 2) :可以避免 java 中的单继承的限制 3) :增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。 ...
java多线程_图文
java多线程_IT/计算机_专业资料。java多线程 JAVA多线程 大纲了解多线程编程,能够创建、 了解多线程编程 能够创建、管理和撤消线 能够创建 程。 理解线程的优先级...
java中线程与多线程快速入门
一个进程从主线程的执行开始进而创建一个 或多个附加线程,就是所谓基于多线程...创建线程 在 Java 中,线程也是一种对象,但并非任何对象都可以称为一个线程,...
java多线程教程
Java 程序通过流控制来执行程序流,程序 中单个顺序的流控制称为线程,多线程则指的是在单个程序中可以同时运行多个不同的线程,执行不同的 任务。多线程意味着一...
Java(多线程)_图文
Java(多线程)_计算机软件及应用_IT/计算机_专业资料。java,多线程 第9章 多线程 教学目的要求 1.理解进程和线程的概念,学习java中线程 的使用 ; 2.掌握线程的...
Java多线程高级技术
一、Java 多线程互斥及同步控制和通信多个线程的执行是并发的,也就是在逻辑上“同时” ,而不管是否是物理上的“同时” 。如果系统只 有一个 CPU,那么真正的“...
java多线程总结(含代码)
Java 多线程总结 Java 多线程总结目标: 理解程序、线程和进程的概念 理解多线程的概念 掌握线程的各种状态 熟练使用 Thread 类、Runnable 接口创建线程 熟练使用线程...
JAVA多线程教程
JAVA 多线程教程 --杭州三部:王飞 杭州三部: 杭州三部开发过程碰到多线程相关的问题, 中心内部没有相关的资料和范例, 只好找回大学的知 识,磕磕绊绊,开发...
JAVA多线程技术的实现
JAVA多线程技术的实现在实现多线程之前,先来看看一些基本概念,比如进程和线程,大家都知道 Windows 是个多任务的操作系统,可以同时运行多个应用程序,比如你可以上...
java 多线程讲解
java 多线程讲解_IT/计算机_专业资料。多线程是 java 应用程序的一个特点, 掌握 java 的多线程也是作为一 java 程序员必备的知识。 多线程指的是在单个程序中可...
相关主题
热门文档