1304031031-夏婷婷-Java实验报告十
更新时间:2024-07-12 03:37:01 阅读量: 综合文库 文档下载
- 130403101017推荐度:
- 相关推荐
计算机科学与技术系
实 验 报 告
专业名称 13级网络工程 课程名称 Java语言基础 项目名称 Java的多线程
班 级 网工一班
学 号 1304031031 姓 名 夏婷婷
同组人员
实验日期 2015.5.8
一、实验目的与要求:
1. 掌握线程概念,了解应用线程的目的,它是解决什么样的程序问题? 2. 掌握正确使用线程类Thread和线程接口Runnable。 3. 熟悉线程的常用方法和生命期。
二、实验内容
实验程序是Thread_pro工程下的Frame1-2.java。实验程序主要验证两方面的功能:
? 验证前后台并行运行之功能:用一个子线程作为后台运行,使一个字符串在
屏幕上连续向左移动;前台主线程仍然监测键盘和鼠标,使你可以激活按钮和进行文本输入等功能;你在文本框中输入新的字符串,按“改变”按钮后移动字符串内容是你新输入的字符串。这种效果对单线程是难以实现的。 ? 验证常用方法对子线程的控制:Start、Stop、Pause、Play四个按钮分别验
证了线程方法start()、stop()、suspend()、resume()的作用。
? 程序(program)是对数据描述与操作的代码的集合,是应用程序执行的脚
本。进程(process)是程序的一次执行过程,是操作系统运行程序的基本单位。程序是静态的,进程是动态的。系统运行一个程序就是一个进程从创建、运行到消亡的过程。
? 线程是比进程更小的运行单位,是程序中单个顺序的流控制。一个进程
中可以包含多个线程。线程是一种特殊的多任务方式。当一个程序执行多线程时,可以运行两个或更多的由同一个程序启动的任务。这样,一个程序可以使得多个活动任务同时发生。
? 动画是指连续而平滑地显示多幅图像。计算机动画原理十分简单,首先
在屏幕上显示出第一帧画面,过一会儿把它擦掉,然后再显示下一帧画面,如此循环往复。由于人的眼睛存在着一个视觉差,所以感觉好像画面中的物体在不断运动。在计算机上,只要以10~30 幅/每秒钟的速度显示图像即可达到满意的动画质量。 1、 实现如下图动画功能:
(1)程序功能:创建一个显示小球不断跳动并显示不同状态的动画程序。要达到无闪烁现象,显示速度快,占用内存较小的要求。即要使用双缓冲技术创建图像的显示方式,清除闪烁现象。使用线程分别解决准备图像、显示图像的任务,解决显示速度慢,占用内存较大的问题。
(2)准备10 个图像文件(T1.JPG~T10.JPG),它们分别显示小球不同时间的高度和状态,存放在“程序/image”目录下。这是创建动画的基础工作,是动画显示的内容,应用程序只是解决图像“动”即显示的方式。
三、实验分析与小结:
实验源代码:
import java.awt.*; import java.applet.*;
public class LX7_8 extends Applet implements Runnable { Image img[]=new Image[10]; Image buffer; Graphics g1; Thread td; int index=0;
public void init() {
buffer=createImage(getWidth(),getHeight());//创建图像缓冲区 g1=buffer.getGraphics();//创建绘图区 for (int i=0;i<10;i++) {
img[i]=getImage(getCodeBase(),\} }
public void start() { if (td==null) {
td=new Thread(this);//创建线程对象 td.start(); } }
public void stop() { if (td!=null) td=null; }
public void run() { while(true) {
g1.drawImage(img[index],10,20,this);//画图像到缓冲区 repaint();//画出图像 try {
td.sleep(50); }
catch (InterruptedException e) {}
g1.clearRect(10,20,200,200);//清除缓冲区中的图像 index=++index; } }
public void paint(Graphics g) {
g.drawImage(buffer,0,0,this);//画出缓冲区中图像 }
public void update(Graphics g) { paint(g); } }
① 回答【思考问题】中的①、②、⑤问题。
① 为什么class frame1_2继承两个接口,各起什么作用?
程序实现Runnable接口中的run方法,这是一个和Applet同时运行的线程。对线程的控制由Applet的start和stop方法完成,Applet运行时,就在start方法中启动线程,Applet停止时,就在stop方法中停止线程。 ② 找到线程体,说明里面代码完成什么功能? 实现图像的轮流显示使小球不停地跳动。
⑤ 请你自己想法验证repaint()和update()的作用。
Paint()方法无法直接调用,因为要传递给他一个图形参数g,故调用repaint方法间接调用paint方法,repaint方法无参数,它将调用update方法,由update方法调用paint方法传递g参数。 ② 完成【思考问题】③要求修改的程序。
③ 总结你对多线程的体会。什么情况必须用多线程技术?
通过编写多线程的程序可以使用户最大限度的发挥CPU的运算效率,同时在图形用户界面的设计中为了提高对所触发的事件响应的灵敏度,也需要借助于线程。
④ Runnable接口为我们使用带来什么方便? 具有较好的灵活性,可应用于多种场合。
四、其它
得分(百分制)
正在阅读:
高三一轮复习《经济生活》检测07-01
汶城中学高三一轮复习学案3304-24
2014淄博国家公务员考试行测:蜕变数学思维 取胜数量关系04-12
金属结构设备安装监理单位自检报告05-22
《金版新学案》2022高三数学一轮复习高效测评卷第七章立体几何理04-22
2017上海户口新政策02-13
机械方面英语专业术语08-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 1304031031
- 实验
- 报告
- 夏婷婷
- Java
- 关于两会期间做好治安保卫安全工作的通知
- 机械原理自测题库
- 2015年江苏高考化学试题与评分标准(标准版)
- 五年级上册数学期末试题-2018-20192人教版含答案
- 新疆兵团上市公司与地方上市公司的财务风险差异研究
- 全氟聚醚应用研究 - 图文
- 网上党史党建知识竞赛967题
- 汽车美容管理系统
- 2014山东省信息技术学业水平考试程序题
- 高中音乐“创作”教学研究——歌曲主题的写作
- 每天一点正能量:不辜负自己的命运
- 常见职位、职务英文译名
- 关于国际班高中数学教学点滴思考
- 2016届浙江省杭州高级中学高三上学期第三次月考理数试题 解析版
- 7下试题及答案
- 市场营销习题-第四章-消费者市场与购买行为分析
- 2012-2013学年第二学期补考考场安排
- 模拟电子技术习题与答案
- CRTSⅡ型板式无砟轨道结构设计
- 六年制小学毕业班语文科综合检测试卷