《java实验指导.docx》由会员分享,可在线阅读,更多相关《java实验指导.docx(5页珍藏版)》请在三一办公上搜索。
1、java实验指导Java程序设计实验教案 教学单元 授课班级 授课时间 实验六、多线程实验 08651 周日,1、2 3-13单周 课堂讲授 教学方法与教学手段 授课专业 授课地点 操作演示 计算机控制 5201 授课教师 计划学时 张连胜 2H 其他 多媒体演示 学生操作 师生互动 方法与手段描述: 采用学生操作与多媒体演示相结合的手段 知识目标 知识目标:掌握多线程的实现方法 能力目标:学会利用多线程来显示动画 素质目标:了解多线程编程原理 教学目标 能力目标 素质目标 重点与难点 教 学 内 容 与 教 学 过 程 设 计 学会利用多线程来显示动画 一、实验目的 掌握多线程的实现方法 学
2、会利用多线程来显示动画 二、预习内容 线程与进程的基础知识 三、实验设备与环境 装有JAVA语言工具软件 (JCreator )的微机若干 四、实验内容 使用Runnable接口的方法实现多线程 编辑TestRunnable.java,保存在D:myjava目录下。 import java.applet.*; import java.awt.*; public class TestRunnable extends Applet implements Runnable Label prompt1=new Label(“the first thread”); Label prompt2=new L
3、abel(“the second thread”); TextField threadFirst=new TextField(14); TextField threadSecond=new TextField(14); Thread Thread1, Thread2; int count1=0,count2=0; public void init add(prompt1); add(threadFirst); add(prompt2); add(threadSecond); public void start thread1=new Thread(this, “FirstThread”); t
4、hread2=new Thread(this, “SecondThread”); thread1.start; thraed2.start; public void run String currentRunning; while(true) try Thread.sleep(int)(Math.random*10000); catch(Exception e) currentRunning=Thread.currentTheard.getName; if(currentRunning.equals(“FirstTheard”) count1+; threadFirst.setText(“th
5、e first thread”+count1+“use”); else if(currentRunning.equals(“SecondThread”) count2+; threadSecond.setText(“the second thread”+count2+“use”); 编译TestRunnable.java。 编辑TestRunnable.htm,要求与TestRunnable.class在同一目录下。 运行TestRunnable.htm。 实现简单动画 实现一个简单动画,效果为一个球由小到大,从屏幕左侧滚动到右侧。 编辑TestRunnable.java,设保存在D:myja
6、va目录下。 import java.applet.*; import java.awt.*; public class Mov extends Applet int x1=50,x2=5,y1=25,y2=5; public void paint(Graphics g) int w=this.getWhidth; int h=this.get.height; if(x1=w) x1=50; if(x2h) x2=5; g.setColor(Color.BLUE); g.fillOval(x1,y1,x2,x2); g.drawOval(x1,y1,x2,x2); x1+=50; x2+=5;
7、 try Thread.sleep(500); catch(Exception e) repaint; 编译Mov.java 编辑Mov.htm,要求与Mov.class在同一目录下。 运行Mov.htm。 五、实验结果 简述进程和线程的基本概念,二者是何关系,java中创建线程的方法有哪些? 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成
8、任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。 线程是进程的一个实体,是CPU调度和分派的基本单位。线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 线程和进程的关系是:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。线程可与属于同一进程的其它线程共享进程所拥有的全部资源,但是其本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器、一组寄存器和栈)。 Java语言提供了两种创造线程的方法,一种是继承thread这个类,一种是执行runnable接口。 本章节中需要掌握java中多线程的基本概念和多线程编程的思想和方法,并学会根据thread类进行多线程程序的设计。 思 考 与 讨 论 教 学 总 结 参 考 资 Java程序设计 王建红主编 高等教育出版社 料