Java 程序设计 Java 程序设计 任务四:学生成绩读写程序设计 单元五:Java语言高级程序设计 教学目标 知识目标 掌握多线程互斥关系的产生原因; 掌握Synchronized关键字的意义。 能力目标 能会使用同步技术解决互斥的实现方法。 教学内容 4 任务陈述 1 2 3 知识准备 任务实施 任务拓展 任务实训 5 任务描述: 学生成绩读写模拟。程序中有两个线程,一个负责写学生成绩数据,一个负责读取和显示学生成绩数据。为了清楚,一个学生有20门课的成绩,写线程写入的每门课的成绩都和其学号相同。如果读线程发现成绩和学号不一致的情况,则说明出现了共享数据读写不一致的问题,利用线程同步机制解决共享数据读写不一致的问题。 1. 任务陈述 4.1 多线程的共享互斥 由于线程是共享进程资源,因此会出现多线程在同时操作同一资源,其中一个线程对资源的操作可能会改变资源状态,而该状态的改变又会影响另一个线程对该对象的操作结果。 例如,在不同的窗口购买火车票,现在只剩一张火车票的情况下,两个窗口同时进行了卖火车票操作,都会激发一个线程完成卖火车票操作,结果有可能是一个座位卖出了2张相同的票。 需要被同一进程的不同线程访问的数据称为线程共享数据。像这种在某一时刻只有一个线程可以操作某个资源的机制就叫做共享互斥。
原创力文档

文档评论(0)