java程序设计07.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 线程及其操作 传统的程序设计语言,其程序在同一时刻只能单任务操作,效率非常低。例如程序往往在接收数据输入时发生阻塞,只有等到程序获得数据后才能继续运行。因此,很多时候,在程序设计中,我们需要编写具有多线程的程序,以便提高程序执行效率和处理能力。 本章要点 7.1 线程的实现 7.2 线程的状态及调度 7.3 线程的同步 思考与练习7 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.1 线程的实现 7.2 线程的状态及调度 7.2 线程的状态及调度 7.2 线程的状态及调度 7.2 线程的状态及调度 7.2 线程的状态及调度 7.2 线程的状态及调度 7.2 线程的状态及调度 7.2 线程的状态及调度 7.2 线程的状态及调度 7.2 线程的状态及调度 7.3 线程的同步 7.3 线程的同步 7.3 线程的同步 * * 7.1.1 线程的定义 程序是一段静态的代码,它是应用软件执行的蓝本。平常所说的多任务就是在操作系统中同时运行几个相同或不相同的应用程序,每个程序占用一个进程。 进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到消亡的过程。作为执行蓝本的同一段程序,可以被多次加载到系统的不同内存区域分别执行,形成不同的进程。 线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制;但与进程不同的是,同类的多个线程是共享一块内存空间和一组系统资源,而线程本身的数据通常只有微处理器的寄存器数据,以及一个供程序执行时使用的堆栈。所以系统在产生一个线程,或者在各个线程之间切换时,负担要比进程小的多。一个进程中可以包含多个线程。 7.1.1 线程的定义 一个线程是一个程序内部的顺序控制流。多进程是指在操作系统中,能同时运行多个任务程序。多线程是指在同一应用程序中,有多个顺序流同时执行。 多任务与多线程是两个不同的概念。前者是针对操作系统而言的,表示操作系统可以同时运行多个应用程序;后者是针对一个程序而言的,表示一个程序内部可以同时执行多个线程。 多线程的程序能更好地表述和解决现实世界的具体问题,是计算机应用开发和程序设计的一个必然发展趋势。 7.1.2 创建线程 创建线程是指将需要独立运行的子任务代码放到从Thread类派生出来的类的run方法中。然后在主线程中原先调用该子任务的地方先创建一个该线程类的实例,再调用线程类中的start方法启动线程。 每个Java程序都有一个缺省的主线程,对于Application,主线程是main( )方法执行的线索;对于Applet,主线程指挥浏览器加载并执行Java小程序。要想实现多线程,必须在主线程中创建新的线程对象。 Java中实现多线程有两种途径: 1.创建Thread类的子类 2.实现Runnable接口 无论使用哪种方法,都需要用到Java基础类库中的Thread类及其方法。 7.1.2 创建线程 7.1.2.1 继承Thread类 Thread类综合了Java程序中一个线程需要拥有的属性和方法,主要有: 1.构造方法 public Thread(ThreadGroup group,Runnable target,String name) 其中,参数group代表该线程所属的线程组,target代表执行线程体的目标对象(该对象必须实现Runnable接口),name代表线程名。 Thread类的构造方法有多个,所对应的操作有如下几种: (1)public Thread(): 创建一个系统线程类的对象。 (2)public Thread(Runnable target): 在上一个构造方法完成的操作—创建线程对象的基础之上,利用参数对象(实现了Runnable接口的target对象)中所定义的run()方法,来初始化或覆盖新创建的线程对象的run( )方法。 7.1.2 创建线程 7.1.2.1 继承Thread类 (3)public Thread(String name): 在第一个构造方法的基础上,为所创建的线程对象指定一个字符串名称供以后使用。 (4)public Thread(Runnable target,String name): 实现前两个构造方法的功能。 (5)public Thread(ThreadGroup group,Runnable target): 生成一个指定线程组和目标对象的线程。

文档评论(0)

yan666888 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档