《Java程序设计教程》教案第24课多线程(二).docx
《《Java程序设计教程》教案第24课多线程(二).docx》由会员分享,可在线阅读,更多相关《《Java程序设计教程》教案第24课多线程(二).docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课题多线程(【二)课时2 课时(90 min )教学目标知识技能目标:(1 )了解线程安全(2 )掌握线程同步机制及语法格式(3 )掌握线程通信的基本知识(4 )通过上机实操,将所学知识与实际应用相结合思政育人目标:(1)引导学生通过对修饰符访问范围的学习,来编与简单的程序,树立学生实事求是、 一丝不向的科学精神(2 )引导学生运用所学知识揭示生活中的奥秘,在实践中深化认识,达到学以 致用的目的教学重难点教学重点:synchronized修饰的语法格式教学难点:将所学知识与实际应用相结合教学方法情景模拟法、问答法、讨论法教学用具电脑、投影仪、多媒体课件、教材教学设计第1节课:课前任务T考勤(2
2、 min ) T问题导入(5 min ) T传授新知(3 3 min )一知 识拓展(5 min )第2 1课:上机头操1 ( 20 min )一课堂原小(20 min )一课堂小结(3 min )一作 业布置(2 min )教学过程. 聚设计意图第一节课课前任务【教师】布置课前任务,和学生负责人 同学复习上节课所学知识【学生】复习上节课所学知识取得联系,让其提醒通过课刖复习, 让学生重温上节 课所学知识磔 能够更好地接受 新知识考勤(2 min )【学生】按照老师要求签到培养学生的组 织纪律性,掌握学 生的出勤情况问题导入(5 min )【教师】提出以下问题:大家在使用线程的时候,有没有发现
3、这样一个问题:如果涉及 到多个线程对同一个变量进行操控,会时常抛出这样一个错误:通过问题导入, 引导学生思考,调 动学生的主观能java.lang.NullPointException (空指针异常)或者 java.lang.ArraylndexOutOfBoundsException (数组越界)。产生这个 问题的原因是线程不同步引起的。那么怎样才能实现线程同步?【学生】思考、讨论、举手发言动性传授新知(33 min )【教师】通过大家的发言,引入新的知识点,讲解线程的同步10.5.1 线程安全在程序中运行多个线程时,可能会发生的问题:当两个或多个线程同时访问同一个变量,并且线程需要修改这
4、个变量时,程序中可能会出现预想不到的后果。10.5.2 线程同步机制1 .同步块使用synchronized修饰的代码块称为同步块,也称为临界区, 通常将共享资源的操作放在同步块中。语法格式synchrcmizd (Object) Object表示任意一个对象。【教师】演示例题107【学生】观看程序运行结果【教师】对程序进行分析:tAx tBx tC和tD是基于同一个SyncTest类对象t创建的线程, 因此,它们是互斥的,因为在执行同步块时会锁定当前的对象,只 有执行完该同步块才能释放该对象锁,下一个线程才能执行并锁定 该对象。【学生】聆听、理解,记录2 .同步方法使用synchronize
5、d修饰的方法称为同步方法语法格式synchronized void method() synchronized也可以修饰一个静态月法,如synchronized static void method()o由于静态方法属于类,因此,synchronized 修饰的静态方法锁定的是这个类的所有对象。3 0.53线程通信(1)当一个线程止在使用一个同步块或同步方法时,其他线程 不能使用该同步块或同步方法。对于同步方法,有时可能会涉及一 些特殊情况。(2 )当一个线程使用的同步方法用到某个变量,而此变量又需 要其他线程修改后才能符合本线程的需要,那么可以在同步方法中通过教师在课 堂上对随机文件 流的构
6、造方法和 常用方法的讲解, 使学生熟练掌握 其编程方法使用wait。方法。【教师】演示例题108 ,并对重要语句进行分析 public void run () /判断当前的线程,分别调用sellBreakf ast ()方法 if (Thread. currentThread () = MrZhang) sellBreakf ast (20);XAAAAAAAAAAAAAAAAAAAAAAAA/WS else if (Thread. currentThread () = MrLi) AAAAAAA/VAA/SAAA/VSAAAAAAAAA/VXAAAA/XAAsellBreakfast (5)
7、;public static void main(String args) _AAAAAAAA/ fi1! Breakfastwindow 类对象 tMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABre ak fas tWindow t = new BreakfastWindow();MrZhang = new Thread (t) ;/ 创送 MrZhangwwwwwwvZwwwwwwsZMrLi = new Thread (t) ;/ 创建 MrLiSAAAAAAAAVVWVVSAAMrZhang. start () ;/ 启动 MrZhangVWSAAAAAA/WvAA
8、AAAAAAAAA/vMrLi. start () ;/ 启动 MrLiVVXAAAAAAXAAAAAAA/S)【学生】聆听、理解、记录【学生】聆听、思考、理解、记忆知识拓展 (5 min )【教师】讲解线程同步的小技巧【学生】聆听、记录、思考学生可进一步 巩固知识第二节课上机实操(20 min ) 【教师】组织学生在机房使用文本编辑编写程序,运用课堂所 学知识和基础在Java运行环境中编写程序,实现以下目的: 模拟产品生产与消费系统。生产者不断地生产产品,而消费者则不断地消费产品。要求生产产品的最大数量为3,且必须先 有产品,消费者才能消费产品。 【学生】上机实操,模拟产品生产与消费系统 【
9、教师】巡视机房,及时解决学生遇到的问题通过上机实操, 使学生熟练掌握 使用Account类 编写程序的方法课堂演示(20 min )【教师】带领学生分析上机操作中出现的问题,并作出分析【问题分析】(1)定义生产者线程类Producer,包含成员变量list和有参 构造方法(将共享list赋给list),然后在重写的run()方法中循环 执行同步块,同步对象为list。同步块中,当list大小等于3时,当 前线程进入等待状态,否则向list中添加一个产品,并输出产品数 量,然后通过list调用notifyAII()方法唤醒其他线程后,线程休眠1通过演示让学 生找出自己的不 足,从而牢固的掌 握知
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java程序设计教程 Java程序设计教程教案 第24课多线程二 Java 程序设计 教程 教案 24 多线程
限制150内