1
我正在開發一款Android帆布遊戲,並且正在繪製主遊戲窗體時注意到了lagspike。它開始在我開始在不同部分噴灑synchronized(surfaceHandler)
以試圖對陣併發陣列修改。我是否同步?何時進行同步,何時不進行以及何時應該修改可見數據的經驗法則是什麼?同步Android帆布Surfaceview
也有可能是由其他東西引起的尖峯?繪圖方法在這種情況發生時執行,但不可能進行觸摸交互(大多數情況下,即使不是全部觸摸方法也是同步的)。
建議?
我只在一個地方繪製一個線程,問題是即時修改正在繪製的其他地方的集合,導致併發的集合修改。這些應該同步嗎?十大小同步比一大同步更好/更差/相同嗎? – Dested 2012-01-05 06:07:52
我認爲十個「小」同步的開銷比一個「大」同步最差,大小(我假設)對應於正在進行的更改次數。你也可以設計你的數據結構在訪問時更新,你不能使用迭代器:)。 – nmjohn 2012-01-05 06:09:17