运行的。Р运行情况分析Р?通过观察运行结果,无论两个线程谁先启动谁后启用,只要初始状态设置的是“车停门开”,那么一定是售票员Conductor线程先执行,或者初始状态时“车开门关”,那么一定是司机Driver线程先启动。即:Р Conductor c = hx.new Conductor(car);Р Driver d = hx.new Driver(car);Р Р Thread tc = new Thread(c);Р Thread td = new Thread(d);Р 无论这里是:Р td.start();Р tc.start();Р 还是:Р tc.start();Р td.start();Р (请注意顺序)Р 只要flag的初始值固定,那么程序输出的结果也是不变的,这刚好体现了同步运行这一概念!Р自我评价与总结:Р?通过这次课程设计,我有以下感触:РJava的Thread类以及synchronized关键字能够狠好的处理信号量所引出的一系列问题。Р本程序在不影响功能的前提下,只使用了一个信号量便完成了任务,不得不说是一个创新之处。Р通过将两个同步与互斥的操作open与drive封装在Bus类中,实现了线程了互斥与同步进行。Р通过继承Thread类,并将使Driver与Conductor类实例公共使用一个Bus类型变量,实现了信号量的共用。Р本科生课程设计成绩评定表Р序号Р评分项目Р满分Р实得分Р1Р学习态度认真、遵守纪律Р10Р2Р设计分析合理性Р10Р3Р设计方案正确性、可行性、创造性Р20Р4Р设计结果正确性Р40Р5Р设计报告的规范性Р10Р6Р设计验收Р10Р总得分/等级Р评语:Р注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、Р及格(60-69分)、60分以下为不及格Р 指导教师签名:Р 2011 年1月21日