Java程序设计 教学课件 刘慧宁 14.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14章 多线程 14.1 线程简介 14.2 创建任务和线程 14.3 线程属性 14.4 线程池 14.5 异常与线程 第14章 多线程(续) 14.6 共享资源 14.7 线程的状态 14.8 线程安全的类 14.9 Swing与线程 14.10 习题 14.1 线程简介 使用多线程可以将一个程序划分为多个独立的 子任务,每个子任务都能同时运行。 程序的一次执行过程称为一个进程。进程是一 个“ 自包含” 的运行程序,有自己专用的内存地 址。 线程是指一个程序中可以独立运行的片断,是 进程中的一个单一而连续的控制流程。 一个进程可以包含多个线程,每个线程独立运 行以执行特定的任务,而且同一进程内的多个 线程间共享内存等资源。 14.1 线程简介(续) 对于单CPU平台,多任务操作系统能使多个进 程循环获得自己的CPU时间片,由于循环的速 度非常快,可以把它想象成每个进程都有自己 专用的CPU,即多个程序(进程)在同时运 行;对于多CPU平台,多任务操作系统能确保 多个进程同时获得自己的CPU时间片。  多线程在较低的层次上扩展了多任务的概念, 它使得一个程序中可以有多个线程同时运行。 可以同时运行一个以上线程的程序称为多线程 程序。 14.1 线程简介(续) 主线程由系统自动创建并启动。当程序 作为application运行时,主线程就是方法 main 的执行路径;当程序作为applet运行 时,主线程就是applet装载运行的路径。 14.2 创建任务和线程 要实现多线程,就必须在主线程或其他已经 存在的线程中创建新的线程对象。 为了创建新线程,应该首先定义该线程将执 行的特定子任务。一般来说,为了定义线程 的子任务,就需要定义一个实现接口 java.lang.Runnable的任务类。 接口Runnable中只有一个无参数方法run , 实现该接口时,在方法run 中定义相应线程的 子任务代码。 14.2 创建任务和线程(续)  定义某个任务类后,如果需要创建一个执行相 应子任务的新线程,只需首先创建一个该类的 对象,然后以该对象为参数,使用类 java.lang.Thread创建一个Thread对象, 即线程对象。最后,调用类Thread中定义的 方法start启动当前线程来执行相应子任务。 例14-1 一个简单的多线程程序 源代码 运 行 14.2 创建任务和线程(续) 方法start运行时,首先会为当前线程进行 特殊的初始化,然后使当前线程开始运 行(系统会在这个当前线程中自动调用 该线程的方法run )。一旦当前线程开始 运行,方法start就立即返回,而当前线程 会继续运行。 14.2 创建任务和线程(续) 程序中不要直接调用Runnable对象的方 法run 。直接调用该方法,与调用其他普 通方法的效果一样,只会在同一线程中 执行其中的代码,不会启动新线程。 不调用方法start,新线程永远不会开始运 行。此外,也不能针对同一个线程,多 次调用方法start 。多次调用方法start启动 同一个线程是非法的。 14.2 创建任务和线程(续) 类Thread实现了接口Runnable,因此, 也可以通过定义一个类Thread的子类来定 义线程的子任务。 除非程序员打算修改或增强某个类的基本行 为,否则不应该为该类创建子类。类 Thread中定义有许多控制线程的方法,而 为了定义线程子任务只需覆盖其中的方法 run ,因此,现在这种方法已不再推荐使 用。 14.3 线程属性  14

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档