和前三次做業相比,這幾回做業最大的不一樣是難度的飛躍。遺憾的是在這難度的變化面前,我本身卻沒有作好充分的準備,錯誤的低估了做業難度致使給本身帶來了不少沒必要要麻煩和損失。接下來我將對它們進行說明(度量圖工具出了故障一直沒法生成請原諒)。多線程
這是oo課程第一次多線程做業,我本身也體會到了它的難度。個人設計思路是首先夠早一個調度器類(以上類圖的scheduler類),負責管理各類實時輸入的指令,而後是有三部電梯在各自獨立的運行着,每當有新的指令輸入時,首先判斷是不是同質指令,而後在三部電梯中按照指導書中的說明來尋找能夠處理該指令的電梯,若是沒有找到能夠處理該指令的電梯則將該指令加入請求隊列等待執行;和第二次第三次做業不一樣之處在於本次做業的輸入同質判斷能夠在輸入的時候就能夠判斷完成;另外難點在於合理處理時間,由於每次處理都是須要消耗時間的,這樣就會形成最終的輸出可能並不知足相鄰樓層時間差爲0.5;這是本次做業的難點;工具
此次做業也使我對多線程有了更清晰的認識;測試
因爲一些特殊緣由,本次做業完成了但並無提交;此次做業一個很大的特色在於思路很清晰,但工做量大,此次做業本身也是煞費苦心(熬了兩天夜),無奈最終電腦出了故障致使沒有提交(難過);設計思路是分爲兩類,對監控對象是目錄和文件進行了分類,若是是文件則很是簡單,只須要對其進行相應的處理便可;麻煩的是監控對象時目錄的狀況,這就須要對整個目錄進行掃描且處理的細節比較多;處理的大體過程以下:爲每一個監控對象開一個線程(以上類圖中的monitor類,本次做業最傻的設計,沒有之一),時刻掃描有沒有發生變化,若是發生變化則報告這條指令的Scheduler線程以此判斷是否須要觸發操做;線程
MapInfo類是地圖處理和輸入類,Main類則是主要線程類。有了前兩次多線程做業的預熱,本次做業完成的得相對順利些(其實主要是本身開始寫得早);設計思路是有一個調度器類負責調度指令,一旦有指令輸入則對其開一個長度爲3s的監控線程(Monitor類)來監控是否有出租車搶單以及在三秒的監控線程結束以後來決定由哪輛出租車來處理該指令;設計
公測:錯了三個點,三個段都是由於時間偏差對象
互測:對方沒有bug,本身被找了四個點,申述了三個,目前經過兩個,還有一個還沒結果。錯誤也主要是各類時間偏差。不過就算被找出了bug,本身仍是沒能解決若是消除時間偏差。blog
未提交隊列
公測:格式正確it
互測:沒被找出bug。對方程序bug蠻多,懶得仔細去查,報了四個incomplete。監控
最大的收穫是使本身瞭解了本身的實力。因爲前三次做業積攢起來的對oo做業的不重視也一散爲空,取而代之的是熬夜熬夜又熬夜。關於測程序是如何測的仍是和之前同樣,有些東你們都懂,只是說也只有那麼少數人才能規範的完成,以及在大量的分數誘惑面前,測程序過程當中發生的不愉快也逐漸多了起來,最大的但願是本身在學完oo後不要喪失人與人之間的真誠與信任。