Java程序设计杨秀杰 Java程序设计第七章新.pptVIP

Java程序设计杨秀杰 Java程序设计第七章新.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文档。上传文档
查看更多
主编:杨秀杰 李法平 中国水利水电出版社 目 录 第一章 Java与程序逻辑 第二章 面向对象程序设计基础 第三章 面向对象基本特性 第四章 常用对象使用 第五章 异常处理 第六章 I/O操作 第七章 多线程编程 第八章 Java的GUI可视界面编程 第七章 多线程编程 2 1 任务7.1 创建多线程程序 任务7.2 多线程程序的同步 任务7.1 创建多线程程序 4 情境描述 1 2 3 问题分析 解决方案 知识总结 5 应用实践 7.1.1 情境描述 为了提高大家的工作积极性,人事部门觉得在工资管理系统中增加情趣模块,为大家业余时间提供娱乐,在规定的时间内猜数字,通过猜中数字个数的高低来进行排名,此游戏为大家提供了放松的空间。为了完成猜数字游戏的核心功能,需要完成以下任务: 1)多线程编程 2)Java网络编程技术 7.1.2 问题分析 猜数字游戏主要是通过服务器随机产生一个数,客户端用户通过猜一个数字,通过提示用户猜的数的大小给出猜得过大或者过小提醒用户,用户根据提醒再次猜新的数,最终达到猜中的目的。在给定的时间内,猜的数字个数越多,积分越高,本程序主要负责完成猜字核心功能,猜字的积分记录及时间控制问题,在此不涉及。 7.1.3 解决方案 1、打开Eclipse开发环境。 2、创建包com.esms.thread包。 3、在com.esms.thread包下创建类ServerApp,负责服务端程序。 4、编写客户端用户猜字程序ClientApp.java。 5、运行服务器端。 6、运行客户端,进行猜字操作。 7.1.4 知识总结 1. 多线程概念 线程是比进程更小的执行单位。一个进程在其执行过程中可以产生多个线程,形成多条执行线索。从运行角度看,每个线程也有其产生、存在和消亡的过程,也是一个动态的概念。 多任务和多线程是两个不同的概念,多任务是指多进程,是指一个操作系统可以同时运行多个程序,即启动多个进程;而多线程是指一个程序中可以同时运行多个不同的线程来执行不同的任务,每个线程都是该程序内部的一个可执行代码序列。 7.1.4 知识总结 2. Java多线程技术 Java语言中定义的线程同样包括一个内存入口点地址、一个出口点地址以及能够顺序执行的代码序列,可以说线程就是程序内部的具有并发性的顺序代码流。Java语言中,线程通过java.lang.Thread类来实现,在该类中封装了虚拟的CPU来进行线程操作控制。 一个Java程序启动后,就已经有一个线程在运行,可以通过调用Thread.currentThread()来查看当前运行的是哪个线程。 7.1.4 知识总结 3.线程的创建 线程的所有活动都是通过线程体run()方法来实现的。 (1)通过继承Thread类创建线程 多线程的实现步骤如下: 将需要实现多线程的类声明为继承Thread类,覆盖其run()方法,并将线程体放在该方法里。 创建一个该类的实例。 启动该实例。通过start()方法启动线程的执行,start()方法是在Thread类中声明的。 7.1.4 知识总结 3.线程的创建 线程的所有活动都是通过线程体run()方法来实现的。 (2)通过Runnable接口创建线程 通过Runnable接口创建线程的基本步骤如下: ①将需要实现多线程的类声明为实现Runnable接口的类,实现run()方法,并将线程体放在该方法里。 ②创建一个该类的实例。 ③从该实例中创建一个Thread实例。 ④启动该Thread的实例。 7.1.5 应用实践 模拟银行中的会计和出纳。两个线程:accounting和cashier,使用同一个目标对象,共享目标对象的money。当money值小于150时,线程accounting结束自己的run()方法进入死亡状态;当money值小于0时,线程cashier结束自己的run()方法进入死亡状态。 任务7.2 多线程程序的同步 4 情境描述 1 2 3 问题分析 解决方案 知识总结 5 应用实践 7.2.1 情境描述 多个线程的运行往往存在竞争资源的问题,竞争过程中时常存在冲突,为了解决冲突,采取多线程的同步机制能解决问题。为了完成线程同步,需要完成以下任务: 1)方法同步机制 2)多线程编程技术 7.2.2 问题分析 生产者与消费者问题在于他们共享同一资源,当生产者生产过程中,消费者无法获取资源,因此,生产者锁定了资源的访问。消费者消费资源时,生产者停止生产。Java语言采取synchronized关键字实现同步控制。 7.2.3 解决方案 1、打开Eclipse。 2、在com.esms.thread包下建立BufferLock类,用于共享资源的同步互斥操

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档