Java程序设计实用教程秦学礼等第10章节多线程与网络.pptVIP

Java程序设计实用教程秦学礼等第10章节多线程与网络.ppt

  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文档。上传文档
查看更多
第10章 多线程与网络编程 10.1多线程 10.2 网络编程 10.1多线程 10.1.1多线程基本概念 10.1.2创建线程的方式 10.1.3线程的控制 10.1.4线程的优先级及终止 10.1.5多线程的互斥与同步 10.1.1多线程基本概念 从根本上讲,多线程程序必须对多项独立活动进行协调,避免线程间的互相干扰。多线程程序涉及到普通的单线程程序中不存在的4个新的重要方面:互斥性、同步化、调度和死锁。了解这些概念之后将有助于你编写正确的多线程程序。 线程 一个线程是一个程序内部的一个顺序控制流。线程并不是程序,它自己本身并不能运行,必须在程序中运行。在一个程序中可以实现多个线程,这些线程同时运行,完成不同的功能。 从逻辑的观点来看,多线程意味着一个程序的多行语句同时执行,但是多线程并不等于多次启动一个程序,操作系统也不会把每个线程当作独立的进程来对待 互斥 程序中的线程通常必须联合起来共同执行一项任务。合作会产生不同线程访问相同资源的问题。当多个线程共享普通资源(字段、数组、对象或文件)时,可能会发生一个以上的线程同时对同一资源进行访问。 要避免同时访问,则要设置资源的互斥访问。正确的程序每次只有一个线程可以访问受互斥保护的资源。 同步 为了协同工作,线程需要一种进行通信和协调操作的方法。 与时间有关的并发活动的协调称为同步。线程同步通常涉及到在未满足特定条件或其他线程执行的特定计算之前让某线程等待。 如果某线程在一段时间内一直等待,则该线程将被锁定。 线程调度 当某个进程涉及到多个线程时,可用的PE会快速成功地执行所有线程。实际上,当前—个线程放弃该PE时,接下来要运行哪个线程取决于线程系统的调度策略。Java线程具有priority属性,该属性影响调度,将在后面对其进行介绍。 死锁 当多个线程以各种方式相互独立时(其互斥资源保持共享和子任务保持同步),则有可能导致死锁。当线程等待永远都不会发生的事件时会出现死锁情况。 例如,在为线程B生成输出之前,线程A正在等待来自线程B的数据。在线程B为线程A生成数据之前,线程B正在等待接收来自线程A的一些数据。 10.1.2创建线程的方式 Java程序从主线程(Java应用程序的main方法)或applet控制线程开始执行。主线程可以产生其他线程以实现并发运行。主线程完成后,Java程序就会终止。 线程是运行自身代码的独立控制指令。在Java中,线程是可以扩充Thread类或实现Runnable接口的类的对象。线程的入口点是它的run方法,下面是run方法的声明格式: public void run(); [例10.1] 一个创建线程的例子 算法分析: 定义一个Odd类。 创建主类。 使用run方法执行和中止线程。 在屏幕输出20个结果。 10.1.3线程的控制 父线程通过创建Thread类的对象并调用其start方法来启动子线程。start方法使该对象成为—个准备运行的新线程。第一次轮到该线程执行时,JVM就会调用run方法。线程可以处于以下5种状态中的一种状态: 新生——该线程是新创建的。 就绪——该线程准备运行或继续运行。 运行——正在执行该线程。 阻塞——该线程正在等待事件且不接收PE服务。 终止——该线程已经完成,而且不能再运行 注意:如果线程处于就绪、运行或阻塞状态,则该线程有效 10.1.4线程的优先级及终止 线程的优先级 Java提供一个线程调度器来监控程序中启动后进入可运行状态的所有线程。线程调度器按照线程的优先级决定调度哪些线程来执行,具有高优先级的线程会在较低优先级的线程之前得到执行。 线程的终止 线程通常在其run方法返回时终止。要终止一个线程,最好的方法通常是使其run方法返回。推荐的方法是定期为run方法检查继续执行的条件并在当该条件不再为真时返回。 10.1.5多线程的互斥与同步 线程的互斥 [例10.2] 一个互斥线程的例子。 算法分析: 定义MaxGuard类、FindMax类。 创建主类。 使用run方法执行和中止线程。 由主线程获取所需的结果。 10.1.5多线程的互斥与同步 同步 [例10.3] 一个同步线程的例子。 算法分析: 定义MyLock、FindMin类。 创建主类。 使用run方法执行和中止线程。 由主线程获取所需的结果。 10.2 网络编程 10.2.1 网络基本概念 10.2.2 Java与Internet 10.2.3 使用InetAddress 10.2.4 使用URL 10.2.5 Socket通信 10.2.6 数据报通信 10.2.1 网络基本概念 计算机网络 计算机网络是一种高速通信媒介,用来连接许多不同的计算机或主机。网络是计算机与通信硬件和软件的组合,其目的

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档