已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章Java的多线程机制与I O操作 湖南科技大学计算机科学与技术系 2 主要内容 Java多线程机制Java图形界面编程Java文件操作 湖南科技大学计算机科学与技术系 3 9 1多线程机制的含义 线程是一个程序中的一个执行流 多线程是指一个程序中包含有多个执行流 线程和进程一样 都是实现并发操作的基本单位 线程和进程的差别主要体现在 同为基本的执行单位 线程的划分比进程小 进程占有独立的内存资源 而线程具有共享的 堆 独立的 栈 线程可以利用 堆 来完成线程间的通信 Web编程 如下载 HTTP服务等 要求具有多线程机制 湖南科技大学计算机科学与技术系 4 9 2多线程机制的实现 Java提供了两种线程编程机制继承Thread类方法 常用于Java应用程序中示例 CounterApplication java实现接口Runnable 常用于Javaapplet程序中示例 CounterApplet javaCounterApplet html运行 appletviewerCounterApplet html示例 MultiThread java 湖南科技大学计算机科学与技术系 5 9 2多线程机制的实现 线程竞争与同步多个线程可能会存取同一实例变量 造成线程竞争 解决办法是采取同步机制通过synchronized实现资源同步代码段同步格式如下 synchronized someObject 代码 方法同步示例 CounterApplet1 javaCounterApplet1 html 湖南科技大学计算机科学与技术系 6 9 3Thread类 构造函数publicThread 常量MAX PRIORITYMIN PRIORITYNORM PRORITY优先级1 10方法publicfinalvoidsetName Stringname publicfinalvoidStringgetName publicstaticintactiveCount publicnativesynchronizedvoidstart publicfinalvoidsuspend 湖南科技大学计算机科学与技术系 7 9 4线程的生命同期 线程生命周期中的状态转换图 湖南科技大学计算机科学与技术系 8 9 4线程的生命同期 堵塞 blocked sleep 方法suspend 与resume 方法示例 ThreadTest2 javaThreadTest3 javawait 与notify 方法示例 ThreadTest5 javaThreadTest4 javaI O堵塞示例 MyClass1 java 湖南科技大学计算机科学与技术系 9 9 5创建用户界面 AWT AbstractWindowToolkit 是API为Java程序提供的建立GUI工具集AWT可用于Java的applet和applications中 AWT支持图形用户界面编程的功能包括 用户界面组件 事件处理模型 图形和图像工具 布局管理器 数据传送类 湖南科技大学计算机科学与技术系 10 9 5创建用户界面 java awt包提供了的GUI设计工具 主要包括 组件 Component组件是以图形化的方式显示在屏幕上并能与用户进行交互的对象 如按钮 标签等 组件不能独立地显示 必须放在一定的容器中才可以显示出来 类java awt Component是许多组件类的父类 Component类中封装了组件通用的方法和属性 如组件对象 大小 显示位置 前景色和背景色 边界 可见性等容器 Container容器 Container 也是一个类 是Component的子类 因此容器本身也是一个组件 具有组件的所有性质 但是它的主要功能是容纳其它组件和容器 常用的有Panel Frame Applet 布局管理器 LayoutManager每个容器都有一个布局管理器 当容器需要对某个组件进行定位或判断其大小尺寸时 就会调用其对应的布局管理器 布局管理器主要包括 FlowLayout BorderLayout GridLayout CardLayout GridBagLayout 湖南科技大学计算机科学与技术系 11 9 5创建用户界面 注意1 Frame是一个顶级窗口 Frame的缺省布局管理器为BorderLayout 2 Panel无法单独显示 必须添加到某个容器中 Panel的缺省布局管理器为FlowLayout 3 当把Panel作为一个组件添加到某个容器中后 该Panel仍然可以有自己的布局管理器 因此 可以利用Panel使得BorderLayout中某个区域显示多个组件 达到设计复杂用户界面的目的 4 如果采用无布局管理器setLayout null 则必须使用setLocation setSize setBounds 等方法手工设置组件的大小和位置 此方法会导致平台相关 不鼓励使用 示例 MyFrame java 湖南科技大学计算机科学与技术系 12 9 5创建用户界面 AWT事件处理模型要能够让图形界面接收用户的操作 就必须给各个组件加上事件处理机制 在事件处理的过程中 主要涉及三类对象 Event 事件 用户对界面操作的描述 以类的形式出现 例如键盘操作对应的事件类是KeyEvent EventSource 事件源 事件发生的场所 通常就是各个组件 例如按钮Button Eventhandler 事件处理者 接收事件对象并对其进行处理的对象 湖南科技大学计算机科学与技术系 13 9 5创建用户界面 AWT事件处理模型Java采取了授权处理机制事件源可以把在其自身所有可能发生的事件分别授权给不同的事件处理者来处理事件处理者 监听器 通常是一个类 该类如果要能够处理某种类型的事件 就必须实现与该事件类型相对的接口 将事件源对象和事件处理器分开使用授权处理模型进行事件处理的一般方法1 对于某种类型的事件XXXEvent 要想接收并处理这类事件 必须定义相应的事件监听器类 该类需要实现与该事件相对应的接口XXXListener 2 事件源实例化以后 必须进行授权 注册该类事件的监听器 使用addXXXListener XXXListener 方法来注册监听器 示例 MyEventHandle java 湖南科技大学计算机科学与技术系 14 9 5创建用户界面 AWT采用了与特定平台相关的实现 图形用户接口欠佳Java基础类 JFC Swing是第二代GUI开发工具集 与AWT的重量级组件不同 Swing中大部分是轻量级组件Swing是构筑在AWT上层的一组GUI组件的集合 为了保证可移植性 它完全用Java语言编写Swing提供了更完整的组件 引入了许多新的特性和能力Swing提供了更多的组件库 如 JTable JTree JcomboxSwing增强了AWT中组件的功能JComponent类是Swing组件的基类 而JComponent继承自Container类 因此 所有的Swing组件都是AWT的容器Swing采用了MVC设计模式示例 SwingUI java 湖南科技大学计算机科学与技术系 15 9 6应用程序对文件的访问 JAVA的输入输出是以流 Stream 来方式来处理的流是在计算机输入 输出操作中流动的数据序列java io包中包括许多类提供许多有关文件的各个方面操作 其中File类主要用于文件操作利用构造函数File stringpath stringfilename 等创建出File对象 利用canRead canWrite getParent getPath isDirectory 等成员函数实现对文件的各个属性的操作 在文件读写的编程过程中主要应该注意异常处理示例 FileTest java 湖南科技大学计算机科学与技术系 16 9 6应用程序对文件的访问 输入输出抽象基类InputStream OutputStream实现文件内容操作的基本功能函数read write close skip 等一般都是创建出其派生类对象 完成指定的特殊功能 来实现文件读写FileInputStream FileOutputStream用于本地文件读写 二进制格式读写并且是顺序读写 读和写要分别创建出不同的文件流对象 本地文件读写编程的基本过程为 生成文件流对象 对文件读操作时应该为FileInputStream类 而文件写应该为FileOutputStream类 调用FileInputStream或FileOutputStream类中的功能函数如read write intb 等 读写文件内容 关闭文件 c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机床装调维修工安全宣传考核试卷含答案
- 气体净化工岗位现场作业技术规程
- 染料生产工安全实操强化考核试卷含答案
- 人身损害赔偿协议书
- 2026年全球六大旅游趋势报告
- 四则运算探秘
- 第十三章 三角形全章知识清单10个知识点(必考点分类集训)(人教版2024)(原卷版)
- 福建省三明市某中学2024-2025学年七年级上学期期中道德与法治试题(含答案)
- 低空经济科普知识竞答考试题库(附答案)
- 《openEuler系统管理与服务部署》课件 -项目二 - 05-系统网络连接设置
- 期末图形与几何专项测试卷(含答案)五年级数学上册(人教版)
- 高中政治学考课件
- 污水处理厂绩效考核评分细则
- 2025中国储备粮管理集团有限公司招聘笔试备考试题及答案
- 2025至2030中国航空液压油行业市场深度研究及发展前景投资可行性分析报告
- 超星尔雅学习通《工程伦理(浙江大学)》2025章节测试答案
- 八年级语文上册重点知识点梳理
- 民法典婚姻法教学课件
- 冲击波治疗仪操作与保养手册
- PICC保险业务技能测试题库汇编
- IPQC基础知识培训课件教学
评论
0/150
提交评论