301
社区成员
发帖
与我相关
我的任务
分享在本单元的三次作业当中,我设置了两种的锁,
修改电梯自身时需要给电梯的外部加锁。
当得到重置指令的时候给重置部分加锁。
双轿厢电梯的楼层锁。




电梯的基本运行逻辑,如开关门上下客等,以及电梯的调度算法。
电梯种类和新的运行逻辑,如重置电梯、新种类电梯等。
使用一把可重入锁,当其中一个轿厢正在换乘楼层时,另一个轿厢如果也需要进入换乘楼层,则让该轿厢在换乘楼层外等待。同时保证某轿厢在换乘楼层操作结束之后,下一时刻必须离开换乘楼层。
由于调度器设计的比较简单,出现过的bug主要是电梯状态之间的转换问题。有时候电梯会根据当前状态继续移动从而移动到不合法的楼层,从而出现访问的问题。
debug方式:通过编写自动化脚本并在代码当中安排关键位置信息的输入输出,从而观察代码的执行情况。由于多线程不能像之前的程序那样逐行执行,所以插入断点进行编程变得困难,因此使用了这一种比较原始的方式进行debug。