我有一個斯卡拉演員的實現,基本上做平均。我推入維持總計和計數的條目並計算出平均值。發生了什麼事情的時候,我在測試過程中以嚴密的循環運行這個測試,我錯過了一個入口,我相信這是最後一個。 演員是這樣的:斯卡拉演員和刪除的條目
val actor = new Actor { def act = react {
case v: Long => addEntry(v); act
case _ =>()
}}.start()
編輯:addEntry的執行是這樣的:
private def addEntry(v: Long) {
total = total + v
count = count + 1
avg = total/count
}
和附加基本上是actor ! 10
等
後,我打電話停止測試,我等待大約200毫秒,以確保隊列被處理。 (或者我認爲這就是我在做什麼,這是問題所在?)
編輯2:基本上,我現在認爲,因爲我在緊密循環中設置這些值,然後立即調用退出,最後一項或條目正在/未被處理或正在被丟棄。我把循環結束之間有一個小的睡眠(實際上這是一個CountDownLatch.await和actor.stop,現在我不能讓測試失敗。
你可以顯示'addEntry(v)'的實現以及如何將消息提交給actor? –