《Java程序设计项目式教程教案教学设计-单元6多线程.docx》由会员分享,可在线阅读,更多相关《Java程序设计项目式教程教案教学设计-单元6多线程.docx(9页珍藏版)》请在优知文库上搜索。
1、Java面向对象程序设计单元教学设计单元六多线程课程名称:Java面向对象程序设计适用专业:授课年级:授课学期:授课教师:Java面向对象程序设计教学单元设计单元6多线程授课教师:JaVa课程组授课班级:学时:6学时教学条件实训室、JDK8.0及以上、EdiPS4.4及以上、投影设备、广播软件、互联网络教学素材教材、课件、实训项目单、微课视频、教学网站等教学目标设计知识目标:(1)了解多线程的基本概念(2)掌握多线程实现方法(3)理解线程的状态及不同状态间的转换(4)掌握线程的控制方法(5)熟悉共享受限资源的方法与线程间的同步能力目标:(I)能够使用继承Thread类方式创建线程(2)能够使用
2、实现Runnable方式创建线程(3)能够熟练控制线程同步素质目标(1)培养并行处理事务的能力(2)养成良好的职业素养(3)培养勇于探索的创新精神和善于解决问题的实践能力任务描述在学生信息管理系统的设计中,首先需要定义一个描述学生这一实体的类,其中包括:学号、姓名、性别、年龄等属性,方法包括设置、获取和输出这些学生信息。教学内容(1)线程与进程的概念(2)线程的创建与启动(3)线程状态(4)线程控制(5)线程的同步(6)线程间通信(7)死锁重点:(1)线程的创建与启动;(2)线程状态;(3)线程的同步;难点:(1)线程的同步(2)线程间通信任务分析与实现(1)任务分析;(2)任务代码。教学过程
3、设计6.1多窗口售票模拟(学时数:4)主要步骤教学内容教学方法教学手段师生活动问题引入大家乘坐高铁出行前会在网上订票或在高铁站窗口买票,多个窗口可能会在同一时间售卖同一车次的火车票,如何保证不卖出同一张高铁票?教师讲授引导文法多媒体教师:讲解演示学生:思考讨论知识讲解知识点1:什么是进程,什么是线程;知识点2:线程的创建与启动;知识点3:线程状态;知识点4:线程控制;知识点5:线程的同步启发式讲解讨论归纳多媒体课件演示思考交流互动分组讨论记录笔记示范操作操作1:继承Thread类方式创建并启动新线程操作2:实现RUnnabIe接口方式创建并启动新线程;操作3:线程控制方法join使用示例;问题
4、引导操作演示分析归纳多媒体系统演示观摩思考归纳总结实战训练课堂实践6-1:(1)首先创建一个线程类SaIeTicketWindow,该类实现RUnnabIe接口,该类中定义一个成员变量ticket,ticket代表当前车次剩余票数。(2)SaleTicketWindow类实现run方法,在run方法体中编写while循环,在循环体中对当前剩余票数ticket进行判断,如果大于零,则表示依然可以售出。调用SIeeP方法,每隔1秒将当前票数减1,表示售卖一张。(3)为保证同时只有一个线程可执行票数减1操作,将该操作放置在同步代码块中。(4)通过SaleTicketWindow类实现创建多个线程对象
5、,每个线程对象模拟为一个售票窗口,本任务中我们创建三个窗口用于售票。动手实践做中学多媒体真实系统环境网络资源实践操作查阅资料巡视指导评估讨论(1)评估讨论实训任务的实施过程;(2)给出参考的解决方案;(3)展示讨论学生的解决方案;(4)考核学生结果。教师启发讨论归纳分数激励实训项目单思考结果演示课堂总结(I)线程是进程中的一个执行单元,;(2)两种创建多线程的方法:继承Thread类,实现RUnnable接口。(3)线程的整个生命周期可以包含:新生状态(New)、就绪状态(Runnable)、运行状态(RUnning)、被阻塞状态(Blocked)死亡状态(Dead)五个状态;(4)可以通过线
6、程同步解决资源使用冲突问题。教师讲解多媒体课件演示整理笔记引导创新同步训练仿照课堂实例,完成如下练习:已知银行账户类BankCount,该类有一个成员变量balance表示账户余额。定义线程类,用于对银行账户进行存钱及取钱操作。同时创建多个线程对象,在多个线程对象中对同一银行账户进行存钱及取钱操作,要求加入同步处理,保证数据的一致性。O教师讲授多媒体布置训练任务提出要求教学过程设计6.2学生成绩处理(学时数:2)主要步骤教学内容教学方法教学手段师生活动问题引入某个餐馆,有一个厨师和一个服务员,服务员必须等待厨师准备好食物才能上菜。当厨师准备好食物时,他通知服务员,后者将得到食物,然后回去继续等
7、待。教师讲授引导文法多媒体教师:讲解演示学生:观察思考知识讲解知识点1为什么要线程通信:知识点2:线程通信机制;知识点2:死锁启发讲解讨论归纳多媒体课件演示思考交流互动分组讨论记录笔记示范操作操作1:通过生产者/消费者模式,理解线程通信机制。问题引导操作演示分析归纳多媒体系统演示观摩思考归纳总结实战训练通过餐馆点餐模拟线程通信机制。1)定义食物类FOod,2)定义服务员类WaitPerson,如果厨师没有准备好食物,则服务员要等待;3)定义厨师类Chef,如果服务员需要食物则制作食物并通知服务员可以取食物;4)定义餐厅类ReStaUrant动手实践做中学多媒体真实系统环境网络资源实践操作查阅资
8、料巡视指导评估讨论(1)评估讨论实训任务的实施过程;(2)给出参考的解决方案;(3)展示讨论学生的解决方案;(4)考核学生结果。教师启发讨论归纳分数激励实训项目单思考结果演示课堂总结(1)通过Object的方法Wait()和notify()notifyAll()方法实现线程通信;(2)wait()和notify()notifyAll()必须放在同步方法或代码块里;(3)同时满足“互斥使用”、“不可抢占”、“请求和保持”、“循环等待”会发生死锁,我们要避免四个条件同时满足。教师讲解多媒体课件演示整理笔记引导创新同步训练已知一蛋糕店有一名销售员和一名蛋糕师,该蛋糕师一天最多可做出10个生日蛋糕,销售员订出蛋糕后,必须等待厨师完成蛋糕制作。当蛋糕师准备好蛋糕时,他通知服务员,后者将得到食物,然后回去继续等待。教师讲授多媒体布置训练提出要求