设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网络编程 >> JSP文摘 >> Java线程的深入探讨
精品推荐
JSP文摘点击TOP10
·Servlet和JSP迈上新台阶
·一个开发人员眼中的JSP技术(上)
·Java线程的深入探讨
·一个开发人员眼中的JSP技术(下)
·基于JSP的动态网站开发技术
·BEA WebLogic 暴露源代码漏洞
·Unify eWave ServletExec 泄露jsp源代码漏洞 
·我认为JSP有问题(下)
·我认为JSP有问题(上)
·我认为JSP有问题(上)
网络编程点击TOP10
·ASP.NET 程序中常用的三十三种代码
·CHK文件恢复工具
·.NET 初 级 读 本
·c#操作word表格
·『原创』C#中TreeView类操作全攻略:建立树,新增节点,删除节点,修改节点,拖动节点,与Oracle数据库交互操作(一)
·我的.NET书架 (入门篇)
·从零开始学ASP.NET(基础篇)
·十天学会ASP.net之第一天
·用C#实现木马程序
·官方水晶报表 .NET 应用程序实例下载 (C#、Visual C++.NET)
精选专题

Java线程的深入探讨

作者: 来源:http://www.xgdown.com/ 时间:2005-11-4 23:37:01

Java线程的深入探讨(1) 一般来说,我们把正在计算机中执行的程序叫做"进程"(Process) ,而不将其
称为程序(Program)。所谓"线程"(Thread),是"进程"中某个单一顺序的控制流。
新兴的操作系统,如Mac,Windows NT,Windows 95等,大多采用多线程的概念,把线
程视为基本执行单位。线程也是Java中的相当重要的组成部分之一。

  甚至最简单的Applet也是由多个线程来完成的。在Java中,任何一个Applet的
paint()和update()方法都是由AWT(Abstract Window Toolkit)绘图与事件处理线
程调用的,而Applet 主要的里程碑方法——init(),start(),stop()和destory()
——是由执行该Applet的应用调用的。

  单线程的概念没有什么新的地方,真正有趣的是在一个程序中同时使用多个线
程来完成不同的任务。某些地方用轻量进程(Lightweig ht Process)来代替线程
,线程与真正进程的相似性在于它们都是单一顺序控制流。然而线程被认为轻量是
由于它运行于整个程序的上下文内,能使用整个程序共有的资源和程序环境。

  作为单一顺序控制流,在运行的程序内线程必须拥有一些资源作为必要的开销
。例如,必须有执行堆栈和程序计数器。在线程内执行的代码只在它的上下文中起
作用,因此某些地方用"执行上下文"来代替"线程"。

  2.线程属性

  为了正确有效地使用线程,必须理解线程的各个方面并了解Java 实时系统。
必须知道如何提供线程体、线程的生命周期、实时系统如 何调度线程、线程组、
什么是幽灵线程(Demo nThread)。

  (1)线程体
  所有的操作都发生在线程体中,在Java中线程体是从Thread类继承的run()方
法,或实现Runnable接口的类中的run()方法。当线程产生并初始化后,实时系统调
用它的run()方法。run()方法内的代码实现所产生线程的行为,它是线程的主要部
分。

  (2)线程状态
  附图表示了线程在它的生命周期内的任何时刻所能处的状态以及引起状态改
变的方法。这图并不是完整的有限状态图,但基本概括了线程中比较感兴趣和普遍
的方面。以下讨论有关线程生命周期以此为据。


  ●新线程态(New Thread)
  产生一个Thread对象就生成一个新线程。当线程处于"新线程"状态时,仅仅是
一个空线程对象,它还没有分配到系统资源。因此只能启动或终止它。任何其他操
作都会引发异常。
  ●可运行态(Runnable)
  start()方法产生运行线程所必须的资源,调度线程执行,并且调用线程的run
()方法。在这时线程处于可运行态。该状态不称为运行态是因为这时的线程并不
总是一直占用处理机。特别是对于只有一个处理机的PC而言,任何时刻只能有一个
处于可运行态的线程占用处理 机。Java通过调度来实现多线程对处理机的共享。

  ●非运行态(Not Runnable)
  当以下事件发生时,线程进入非运行态。
  ①suspend()方法被调用;
  ②sleep()方法被调用;
  ③线程使用wait()来等待条件变量;
  ④线程处于I/O等待。
  ●死亡态(Dead)
  当run()方法返回,或别的线程调用stop()方法,线程进入死亡态 。通常Appl
et使用它的stop()方法来终止它产生的所有线程。

  (3)线程优先级
  虽然我们说线程是并发运行的。然而事实常常并非如此。正如前面谈到的,当

共3页 9 7 [1] [2] [38 :>

Java线程的深入探讨 相关文章:
Java线程的深入探讨 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com