OO第二次博客作业
第五次作業:
此次作業是3個多線程電梯,其中有電梯線程、調度器線程、輸入線程。
電梯線程負責線程的運動,調度器線程對輸入的指令進行分配,輸入線程從界面讀取指令并放入請求隊列中。
電梯線程在判斷捎帶情況時會讀取其他電梯的狀態,而且3個電梯都會同時訪問主請求隊列,所以需要對電梯狀態的訪問和請求隊列的訪問進行限制。多線程的問題大多會出現在數據的共享方面,所以我建立了共享類去管理線程之間的共享。
結果表明我對線程數據的管理是有效的,沒有出現線程不安全的現象。但是對于電梯的各種行為沒有清楚的定性和書寫規范,導致一些行為理解錯誤或者沒有進行覆蓋性的執行。
BUG分析:
總體而言,此次作業并沒有大多的bug,只是對于對電梯一些行為的錯誤定義,一份pdf每個人都會有自己的看法。整個互測過程中,沒有發現特別致命的bug,只是一些情況沒有考慮的bug沒有實現,或者懶得寫?
第六次作業:
文件操作,java的文件操作很陌生,其中對于文件和文件夾的監控雖然不屬于同種類型,其實都是對文件樹的監控。對于每個監控器都有自己的一個線程,但是他們監控的文件都是同一個文件,其中對于文件的操作是各個線程獨立的。所以我們需要一個文件安全類去保證不會同時寫或同時讀寫的發生。對于文件信息的掃描,我們可以采取對文件樹建立快照,取以前的狀態進行對比。
此次作業因為剛開始的數據處理還有各種處理方法的不合理導致無法完全實現功能,沒有扎實的代碼功底讓我寫的非常艱難。
BUG分析:
對java文件的不熟練、導致對于文件夾的判斷有問題。
?
第七次作業:
出租車的調度問題。其中有出租車線程,輸入線程。對于每個輸入都對其進行調度。
對于每個指令都會尋找范圍內的車輛,所以需要的到所有車的信息。即調度時要對車輛的讀寫要保證其安全性。
因為覺得最短路徑太耗時間所以沒有計算兩點之間最短路徑,然后直接瞬移。。。。debug很難受。
?
體會:
要說這幾次作業什么對于我寫作業有巨大的阻礙,那就是寫代碼的思維和構造代碼的規范,規范是前人栽樹后人乘涼,只要遵守基本只有好處沒有壞處。思維對于問題的考慮不是很深入,比較淺顯,從讀大佬的代碼中就會發現另一種思維方式,你會發現你費勁心思想的問題從另一個角度根本不會遇到,能幫助自己補充知識。每次作業都是對自己是一種挑戰、但只要堅持下去,去完成,不放棄你也能有很大的收獲。當然,OO花的時間很明顯與自己選的課有很大的沖突,很難顧全所有的課程,導致課程體驗極差,只能苦中作樂了。
轉載于:https://www.cnblogs.com/cqblogs/p/8978218.html
總結
- 上一篇: 台式电脑VGA是什么?
- 下一篇: Ubuntu 划词翻译