湖南科技职业学院软件职业技术学院
教师课时授课计划
教师姓名: 授课班级: 授课课时:8
课程名称:JAVA程序设计 第 7 课 教学循环号:5-2
课题
线程概念
各教学环节课时分配
讲授
4 课时
有指导的实践
2 课时
独立实践
2 课时
教学内容
了解线程的概念
了解多线程的概念
3、学会使用线程类
4、学会使用时间类调用系统时间
5、学会使用日期类调用系统日期
6、学会使用线程实时显示时间
重点
了解多线程的概念
难点
学会使用线程类
教具
多媒体
作业
独立实践
授课日期
(校历)
第 4 周星期 1 第 3-4 节
第 4 周星期 2 第 5-8 节
第 4 周星期 3 第 1-2 节
第 周星期 第 节
课后小结
通过本课的学习,学生掌握了:
线程的概念
2、利用线程类编程实现线程的应用
详细教学过程附后
详细教学过程:
一、教学目标陈述(5分钟)
定义线程和多线程的概念
识别Thread, Date, Calendar, 及 GregorianCalendar 类的函数和语法及操纵它们的方法
在applet上显示当前的日期和时间
二、JAVA中的线程的概念(45分钟)
1、线程的定义:
进程分为几个任务。每个任务又可分为更小的称为线程的单元
线程可定义为程序内控制的单顺序流
每个程序至少有一个线程称为主线程
微处理器为你执行的进程分配内存。每个进程占有它自己的地址空间(内存)
进程中所有线程共享同一个地址空间
2、多线程的定义
只有一条线程的进程称为单线程
有不止一个线程的进程称为多线程进程中多个线程可同时运行,执行不同的任务和彼此交互。
Java 对线程有内部支持Java体系结构的主要部分是多线程的。
三、实例分析
7.D.1(45*3分钟)
1、问题的陈述
把一个附加的性质加入到Customer 材料 applet。当前的日期和时间必须在applet的状态栏上显示。写出此代码。
2、确定任务
识别显示日期和时间要用的机制
识别显示日期和时间的位置
识别表示对象、存储日期、时间、及要显示消息的变量
识别线程应睡眠的持续时间
识别引发的异常和错误消息
识别数据和时间格式
编写合并日期和时间信息的代码
保存、编译、及执行程序
验证程序是否正确地编码
3、分析解决问题
识别显示日期和时间要用的机制
Thread 类:
用 java.lang.Thread 类来构造和访问多线程应用中各个线程
通过扩展Thread类,你可使你的应用和类在单独的线程中运行
语法:
public class <类_名> extends Thread
Runnable 接口:
当程序需要继承除了Thread 类之外的另一个类时,你需实现Runnable接口
Runnable接口由单个方法run()组成,它在线程激活时执行
实现Runnable接口的语法
public class <类_名> extends <超类_名> implements Runnable
线程的生命周期:
当创建Thread类的一个实例时,线程进入新线程状态
当调用线程的start()方法时,它就进入了可运行状态
称一个线程处于不可运行状态,如果它正在睡眠、正在等待、或被另一个线程所阻塞。
用sleep()方法可使线程进入睡眠方式
sleep() 方法的语法:
sleep(long t);
上面的语法中,t是线程不活动的毫秒数
当线程完成run方法中循环或分配 null值给此线程,线程对象死亡A
Date 类
Date 类封装系统日期和时间信息
Calendar 类:
Calendar 类实现Date 类早期版本中方法
get() 方法:
用 get()方法从给定日期中抽取日期、月或年
get() 方法的语法:
String get(int field);
Calendar类中字段:
字段
返回值
static int HOUR
小时时间
static int MINUTE
分时间
static int SECOND
秒时间
static int DATE
日期的Date部分
static int MONTH
日期的Month部分
static int YEAR
日期的年部分
GregorianCalendar 类:
GregorianCalendar类是从Calendar 类扩展过来的
它支持世界上多数部分的日历操作
setTime() 方法:
setTime() 方法取 Date 对象为变元
它用当前的日期更新GregorianCalendar 对象
setTime() 方法的语法 :
setTime(Date date);
结果:
此applet将需要同时用其它的控件来给出日期和时间,因此使用以下:
Thread 类
Runnable 接口
Date 类
Calendar 类
GregorianCalendar类
识别显示日期和时间的位置
showStatus() 方法
用 showStatus()方法来显示浏览器或AppletViewer的状态栏上的消息。它取 String 对象为它的变元
语法:
showStatus(String msg);
结果:
日期和时间必须在applet 的状态栏上显示。我们使用 showStatus()方法来做此事
识别表示对象、存储日期、时间、及要显示的消息的变量
结果:
Thread datimeThread
Date date
GregorianCalendar calendar
To store date: strDate
To store time: strTime
To store message to be displayed: strStatus
识别线程应睡眠的持续时间
结果:
1000毫秒
识别引发的异常和错误消息
结果:
被引发的异常: InterruptedException
要显示的消息: “Thread interrupted”
识别日期和时间格式
结果:
Date format: mm/dd/yy
Time format: hh:mm:ss
编写并入日期和时间信息的代码
4、执行验证
保存、编译、及执行程序
验证程序是否正确地编码
动作:
日期和时间应在状态栏上是可见的
四、指导性练习(45*2分钟)
7.P.1
1、问题陈述
必须在客户材料applet 上连续地刷新不同商人提供的服务。以下服务应被刷新:
商人名
提供的服务
Cellsoft Inc
Service charge free for 1 year
SpeakCorp
10% discount on new mobile phones
TalkWorld Inc
Buy and win prizes
2、问题分析
3、验证
五、小结 (10分钟)
六.独立实践(45*2分钟)
布置学生进行独立实践7.MR.1、7.MR.2、7.MR.3
根据完成情况进行少量讲解