Java的多线程机制与IO操作.ppt

上传人:max****ui 文档编号:6360888 上传时间:2020-02-23 格式:PPT 页数:18 大小:387.31KB
返回 下载 相关 举报
Java的多线程机制与IO操作.ppt_第1页
第1页 / 共18页
Java的多线程机制与IO操作.ppt_第2页
第2页 / 共18页
Java的多线程机制与IO操作.ppt_第3页
第3页 / 共18页
点击查看更多>>
资源描述
第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 等 读写文件内容 关闭文件 close 示例 FileIO java 湖南科技大学计算机科学与技术系 17 小结 Java多线程机制Java图形界面设计Java输入 输出操作 湖南科技大学计算机科学与技术系 18 课后练习 比较线程与进程的异同 Java的两种线程编程机制是怎样实现的 画出线程状态转换图 编程利用线程同时显示三个时钟 建立文件 并写入一首唐诗 然后显示文件内容 要求用图形用户界面输入与输出
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!