专业课程设计报告内容撰写参考模板

专业课程设计报告内容撰写参考模板

ID:32325937

大小:234.00 KB

页数:29页

时间:2019-02-03

专业课程设计报告内容撰写参考模板_第1页
专业课程设计报告内容撰写参考模板_第2页
专业课程设计报告内容撰写参考模板_第3页
专业课程设计报告内容撰写参考模板_第4页
专业课程设计报告内容撰写参考模板_第5页
资源描述:

《专业课程设计报告内容撰写参考模板》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、教师对学生的项目评分——进程的同步与互斥一、课题内容和要求1、课题内容:在一个班上有S个学生。每个学生都要做一个项目,每一个项目由K个老师一起评分。总共有M个老师。每个老师最多给N个项目评分。其中,S*K<=M*N。在项目结束后,老师们提供T分钟用来检查学生们的项目。检查每一个学生的项目需要用时D分钟。其中,T>D。每一个学生的项目由K个老师共同来检查。在T分钟的时间段内,学生可以在任何时间进入教室(random),除了在最后的D分钟内。所有的老师一直保持工作状态直到他检查完N个项目或者是T分钟过去后。T分钟过去后,所

2、有的老师和同学都必须离开教室。另外,在T分钟结束前的D分钟内(即在最后的D分钟内),如果有任何老师或者是学生都处在没有任务的状态下,都必须离开教室,因为已经没有时间让他完成任务了(因为一个项目检查的时间是整整D分钟)。当一个学生进入教室后,他立即开始找K个没有任务的老师(一次找一个老师,假如没有空闲的老师,则等到有老师为止),找齐K个老师之后给老师检查,然后离开教室。刚开始每一个老师都是处于空闲状态直到他被学生找到,被学生找到后只能等待,直到学生找齐K个老师(在等待学生找其他老师的时间里,他是不能接受其他同学检查作业的

3、请求的),当学生找齐K个老师后,老师们执行完检查任务,然后重新变成空闲状态。每个老师在总共检查了N个学生的作业后,离开教室。2、基本要求:用一个程序来模拟上面描述的作业检查过程。每一个学生和每一个老师应该用不同的线程来完成。可以选用C、C++和Java作为开发语言,但是考虑到专业课程设计I的实验大纲,请尽可能使用Java语言。3、提高要求:(1)考虑到跨平台的特性,请尽量使用posix线程标准(采用该标准有额外的加分);(2)实现良好的图形用户界面;(3)在程序演示过程中能清晰的展示多个学生线程和多个老师线程的同步和互

4、斥流程。二、需求和思路分析1、Java线程由于Java具有平台无关性(“Writeonce,runanywhere”)和内置对多线程的支持(java.lang包中的Thread类),所以本次课程设计考虑采用Java语言编写线程,下面简单介绍一下可能用到的一些方法。(1)start()线程调用该方法将启动线程,使之从新建状态进入就绪队列排队,一旦轮到它来享用CPU资源时,就可以脱离创建它的主线程开始自己的生命周期了。(2)run()Thread类的run()方法与Runnable接口中的run()方法的功能和作用相同,都

5、用来定义线程对象被调度之后所执行的操作,都是系统自动调用而用户程序不得引用的方法。调用start()方法(从父类继承的方法)通知JVM,等待JVM将CPU使用权切换给该线程。当JVM将CPU使用权切换给线程时,如果线程是Thread的子类创建的,该类中的run()方法没有具体内容,程序要在Thread类的子类中重写run()方法来覆盖父类的run()方法,run()方法规定了该线程的具体使命。当run()方法执行完毕,线程就变成死亡状态。在线程没有结束run()方法之前,不要再调用start()方法,否则将发生Ille

6、galThreadStateException异常。(3)sleep(intmillsecond)线程使用CPU资源期间,执行了sleep(intmillsecond)方法,使当前线程进入休眠状态。sleep(intmillsecond)方法是Thread类中的一个类方法,线程一旦执行了sleep(intmillsecond)方法,就立刻让出CPU的使用权,使当前线程处于中断状态。经过参数millsecond指定的毫秒数之后,该线程就重新进到线程队列中排队等待CPU资源,以便从中断处继续执行。如果线程在休眠时被打断,J

7、VM就抛出InterruptedException异常。因此必须在try-catch语句块中调用sleep(intmillsecond)方法。(4)currentThread()currentThread()方法是Thread类中的类方法,可以用类名调用,该方法返回当前正在使用CPU资源的线程。(5)线程的同步当使用多个线程来访问同一个数据时,非常容易出现线程安全问题(比如多个线程都在操作同一数据导致数据不一致),所以我们用同步机制来解决这些问题。实现同步机制有两个方法:a)同步代码块:synchronized(同一个

8、数据){} 同一个数据:就是N条线程同时访问一个数据。b)同步方法:publicsynchronized数据返回类型方法名(){}使用synchronized来修饰某个方法,则该方法称为同步方法。对于同步方法而言,无需显示指定同步监视器,同步方法的同步监视器是this也就是调用该同步方法的对象的本身当使用synchronized来

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。