OO第二次部落格作業

2022-05-07 15:48:13 字數 1483 閱讀 2059

從第4次作業開始,就進入了多執行緒程式設計的環節。我個人對於多執行緒的理解就是在乙個程式在執行時有多個執行流,能夠實現多個執行緒併發執行的技術。由於能在同一時間內執行多個執行緒,因而能夠提公升計算機的整體處理效能。

第五次作業分析:

由於第五次作業是我第一次接觸到多執行緒程式設計,因此這次作業對於我來說難度還是相當大的。此次作業主要出現的問題是會出現時間上的誤差,指導書上說明了誤差在100ms以內是合理的。但是我的作業在有空閒電梯的時候會出現時間誤差超過100ms的情況。

在bug的方面,公測點中有乙個點未通過。在我的程式中,當兩台電梯同時執行,並且執行到同一樓層時,會出現時間的錯亂。究其原因在於對時間的訪問時,第二台電梯的執行時間加上了本來該屬於另一台電梯的請求的輸入時間,因而導致出錯。

第六次作業分析:

第六次作業在控制台讀取監控路徑完成後,啟動 snapshot 執行緒,然後啟動 snapshot 中的 四個觸發器執行緒。每隔一定的時間段,snapshot 就會更新然後喚醒各個觸發器 執行相應的操作。

第七次作業分析:

第7次作業主要出現的問題在於尋找最短路徑中如何將所有的經過的點輸出出來,這導致了我花費了很長的時間。在測試的時候,遇到的主要問題是由於計程車的位置是隨機的,難以確認計程車在去往目的地的過程中,經過的路徑是否是最短的路徑,這給測試者帶來了一定麻煩。

心得體會:

對於一般性的bug測試來說,主要是針對指導書上的細節部分,檢查被測者的細節完成度如何。比如輸入是否完整。本人在第7次作業中,計程車執行的過程中的輸出遺漏了某些資訊而被報了imcomplete。其次,在這個基礎上,可以從在合理測試的範圍內進行極限狀況的測試。

對於執行緒安全性的bug測試來說,執行緒安全問題主要是由於資料競爭引起的。比如在第6次作業中,讀寫操作同時發生。因此我們可以找到測試的**中同步的地方,分析競爭資料的**段的邏輯,相應地構造測試資料。

總體來看,這三次作業是對多執行緒程式設計應用的逐步加深,而且**重用的部分也在不斷增加。因此之後我們應該盡可能地寫出可移植性強的**,這樣才能減小之後的工作量。

6系的主要矛盾一直是日益增長的oo需求和同學越來越緊的時間之間的矛盾。在崑崙課程的影響下,還是要克服拖延症和懶惰的性格,望大家共勉。

OO第二次部落格作業

第五次作業和第六次作業因為一些個人原因被判了無效所以這裡就不拿出來分析了 捂臉 第七次作業 設計乙個簡單的計程車排程系統 類圖 度量分析 其實在剛看到指導書的時候,覺得排程規則十分複雜。週日看了一下午指導書之後才大概想到一點思路,接著就開始了一步步嘗試。其實這次作業的目標十分明確,每個執行緒的任務很...

OO第二次部落格作業

在多執行緒的海洋裡遨遊了三周後,同學們又有了這難得的乙個月一次的oo部落格 休息 時間。多執行緒的各種 玄學 問題可是給我帶來了不少困擾和麻煩。而且這三次作業的共性特點就是特別難debug,不僅是難以給自己debug,給別人debug也不容易。就趁這個時間來回顧下這三周的時光吧!1.簡述 經過了傻瓜...

OO第二次部落格作業

第一次作業 套用生產者消費者模式。電梯作為乙個單獨執行緒,是消費者。輸入執行緒是生產者。全域性只有乙個任務佇列的共享物件。第二次作業 採用生產者消費者模式。耦合比較亂的地方 電梯作為乙個單獨執行緒,同時肩負起排程器和電梯的角色。第三次作業 採用類似於流水線的模式 其實還是生產者消費者模式,不過就是一...