目錄在整體的架構上,我三次作業使用的設計策略較為統一,主要的組成部件有:
從具體的策略上講,使用了生產者&消費者模型,輸入控制線程和主控制線程構成一對生產者和消費者,二者的共享物件則是主等待佇列waitlist
,這裡我們加鎖來保證同一時間只能有乙個執行緒訪問該共享物件,通過wait()
和notify()
來實現阻塞和喚醒訪問該共享物件的執行緒;
主控制線程向電梯執行緒分配其執行的人員,每乙個電梯具有自己的等待佇列,而其任務就是迴圈執行分配到自己的等待佇列中的任務,主控制線程和電梯執行緒之間的共享物件就是每個電梯的等待人員佇列,這裡我們同樣加鎖來保證同一時間只能有乙個執行緒訪問等待人員佇列(共享物件);
在滿足上述的三個條件的情況下結束程式
但是,主線程可能在下述情況下出現錯誤的判定:
為了避免這樣的情況下程式的提前截止,我讓主線程在sleep一小段時間後再次進行判斷,只有兩次判斷均能滿足的時候才會結束執行。
第五次作業:單部傻瓜電梯
而類elevator由於需要維護其兩個佇列(執行佇列和等待佇列),並判斷和執行相應的任務,單類中執行的功能較多,方法間的互相呼叫過於複雜,導致其wmc指標複雜度過高。
第六次作業:單部可捎帶電梯
第七次作業:多部智慧型電梯
類圖:
uml時序圖分析:
三次作業的時序圖基本類似,挑這次作業的畫了一下
根據solid原則進行分析:
我的電梯在本階段作業的公測和互測中沒有出現bug(也沒有效能
大二課程設計(題目1)
題目1.小明是乙個計算機專業top student,祝賀他畢業了。並準備到銀行參加工作。上班第一天,經理叫他編制乙個實現乙個 活期儲蓄處理程式,算作考查。上班第一天,一定要給領導乙個好印象,小明二話沒說,就答應了。現要你是小明了,請完成如下題目功能。儲戶開戶 銷戶 存入 支出活動頻繁,系統設計要求 ...
《物件導向程式設計》課程作業 (二)
github 對檔案分離的感想 第一從直觀上來講,看起來整潔多了,架構更漂亮。以後寫成千上百行 的時候,也不會從頭一鼓作氣寫到尾,看著也難受,找bug也難受。第二是這種做法大大方便了找bug,如果有錯誤能較快的找到。第三是模組的作用就體現出來了,現在寫的幾十行 也許沒太大的感受,但如果未來開發大型專...
第二週課程管理實踐總結
網路131班 201336615143 容永豪 管理概論 鏈結 第三講管理者及其素質 一.管理者及其職責 正因為組織的績效受到眾多的因素影響,因此需要有人帶領組織的人來克服環境的不確定因素 這個人或者這群人就是 管理者 管理者就是對組織負責,對組織績效負責的人 二.管理者的地位分類 高層管理者 對組...