网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Thinking:Java中static、this、s.
.漫谈解决Struts分页显示.
.SUN-JAVA技术在E-TRADE站点的应用.
.Java曝漏洞 应立即打补丁防被黑客.
.构建一个容易单元测试的java--we.
.关于实施MVC框架结构的WEB项目的.
.轻松有效检查Java代码的三个工具.
.Java复杂数据类型用法.
.Java编程实现列表框元素动态变化.
.编写一个基于Java Robot类的屏幕.
.Java设计防病毒电子邮件程序之代.
.abs 方法.
.实战J2EE?开发购物网站(一).
.Sun公司计划推出Java语言工具主要.
.Java打印程序设计.
.试问:动态语言是否将会挽救Swin.
.在LINUX下配置JAVA开发环境.
.编程技巧:在Java应用开发中如何.
.user itext create a word file.
.JDBC基础教程之CallableStatement.

java线程简介(线程基础)

发表日期:2008-1-5



  I、Java 线程简介
  
  1、本教程有什么内容?
  
  本教程研究了线程的基础知识 — 线程是什么、线程为什么有用以及怎么开始编写使用线程的简单程序。
  
  我们还将研究更复杂的、使用线程的应用程序的基本构件 — 如何在线程之间交换数据、如何控制线程以及线程如何互相通信。
  
  2、我应该学习这个教程吗?
  
  
  
  本教程适用于拥有丰富 Java 语言应用知识,但又没有多少多线程或并发性经验的 Java 程序员。
  
  学习完本教程之后,您应该可以编写一个使用线程的简单程序。您还应该可以阅读并理解以简单方法使用线程的程序。
  
  
  
  II、线程基础
  
  
  1、什么是线程?
  
  
  几乎每种操作系统都支持进程的概念 —— 进程就是在某种程度上相互隔离的、独立运行的程序。
  
  线程化是答应多个活动共存于一个进程中的工具。大多数现代的操作系统都支持线程,而且线程的概念以各种形式已存在了好多年。Java 是第一个在语言本身中显式地包含线程的主流编程语言,它没有把线程化看作是底层操作系统的工具。
  
  有时候,线程也称作轻量级进程。就象进程一样,线程在程序中是独立的、并发的执行路径,每个线程有它自己的堆栈、自己的程序计数器和自己的局部变量。但是,与分隔的进程相比,进程中的线程之间的隔离程度要小。它们共享内存、文件句柄和其它每个进程应有的状态。
  
  进程可以支持多个线程,它们看似同时执行,但互相之间并不同步。一个进程中的多个线程共享相同的内存地址空间,这就意味着它们可以访问相同的变量和对象,而且它们从同一堆中分配对象。尽管这让线程之间共享信息变得更轻易,但您必须小心,确保它们不会妨碍同一进程里的其它线程。
  
  Java 线程工具和 API 看似简单。但是,编写有效使用线程的复杂程序并不十分轻易。因为有多个线程共存在相同的内存空间中并共享相同的变量,所以您必须小心,确保您的线程不会互相干扰。
  
  
  2、每个 Java 程序都使用线程
  
  
  每个 Java 程序都至少有一个线程 — 主线程。当一个 Java 程序启动时,JVM 会创建主线程,并在该线程中调用程序的 main() 方法。
  
  JVM 还创建了其它线程,您通常都看不到它们 — 例如,与垃圾收集、对象终止和其它 JVM 内务处理任务相关的线程。其它工具也创建线程,如 AWT(抽象窗口工具箱(Abstract Windowing Toolkit))或 Swing UI 工具箱、servlet 容器、应用程序服务器和 RMI(远程方法调用(Remote Method Invocation))。
  
  
  3、为什么使用线程?
  
  
  在 Java 程序中使用线程有许多原因。假如您使用 Swing、servlet、RMI 或 Enterprise JavaBeans(EJB)技术,您也许没有意识到您已经在使用线程了。
  
  使用线程的一些原因是它们可以帮助:
  
  使 UI 响应更快
  利用多处理器系统
  简化建模
  执行异步或后台处理
  
  
  4、响应更快的 UI
  
  
  事件驱动的 UI 工具箱(如 AWT 和 Swing)有一个事件线程,它处理 UI 事件,如击键或鼠标点击。
  
  AWT 和 Swing 程序把事件侦听器与 UI 对象连接。当特定事件(如单击了某个按钮)发生时,这些侦听器会得到通知。事件侦听器是在 AWT 事件线程中调用的。
  
  假如事件侦听器要执行持续很久的任务,如检查一个大文档中的拼写,事件线程将忙于运行拼写检查器,所以在完成事件侦听器之前,就不能处理额外的 UI 事件。这就会使程序看来似乎停滞了,让用户不知所措。
  
  要避免使 UI 延迟响应,事件侦听器应该把较长的任务放到另一个线程中,这样 AWT 线程在任务的执行过程中就可以继续处理 UI 事件(包括取消正在执行的长时间运行任务的请求)。
  
  
  5、利用多处理器系统
  
  
  多处理器(MP)系统比过去更普及了。以前只能在大型数据中心和科学计算设施中才能找到它们。现在许多低端服务器系统 — 甚至是一些台式机系统 — 都有多个处理器。
  
  现代操作系统,包括 Linux、Solaris 和 Windows NT/2000,都可以利用多个处理器并调度线程在任何可用的处理器上执行。
  
  调度的基本单位通常是线程;假如某个程序只有一个活动的线程,它一次只能在一个处理器上运行。假如某个程序有多个活动线程,那么可以同时调度多个线程。在精心设计的程序中,使用多个线程可以提高程序吞吐量和性能。
  
  
  6、简化建模
  
  
  在某些情况下,使用线程可以使程序编写和维护起来更简单。
上一篇:在Java中定义数据类型 人气:999
下一篇:JAVA程序员必读:基础篇(4.b)-类和继承 人气:660
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐