301
社区成员
发帖
与我相关
我的任务
分享synchronized
加在方法
置所有同步块于一个类为最佳,逻辑清晰,管理方便。多线程程序,本就不易调试,代码更宜,清晰易懂。
加在变量
尽量避免使用,因为若变量于非同步块遭到修改,则容易引起线程不安全。若出现此类情况,可以显式锁代之。
ReentrantLock
若要保持某变量安全,最好用ReentrantLock显式保护。
ReadWriteLock
若读取次数大大多于写入次数,则宜使用读写锁。
分配乘客至电梯
传递重置请求
直接传递即可。
所有同步控制皆由请求队列控制。
使用生产者-消费者模式。
每个调度器行为如下:

设换乘层类。
方法有二
进入方法
若换乘层有轿厢,则阻塞。而后标志变量置为真。
若换乘层无轿厢,则进入,标志变量置为真。
退出方法
标志变量置为假。
唤醒。
信息输出
在电梯运行诸环节输出相关信息。
信息解析
肉眼看信息,不够直观。可以编写相关解析程序查看错误情况。
本单元作业的核心是架构设计,不是实现或者debug。架构清晰,可以规避无数问题和bug。
因此写代码不必着急,虽然我挺着急的,但是好的架构是重中之重。