2011-08-10 18 views
1

我很初學者在安卓所以這裏是東西:我應該使用Handler類或同步功能線程到線程通信

我在我的遊戲多線程:主要活動,渲染器和遊戲循環。

所以問題是: 我應該從Handler類派生類並將消息發送給線程,還是應該使用同步函數進行線程間通信?

這兩種方法的優缺點是什麼?

(我還沒有在Java中的專家,C++是我的祖國)

回答

1

當您需要將操作恢復到您正在運行的活動時,處理程序非常好。

當談到從UI到其他線程的通信時,我更喜歡使用線程安全集合來管理從一個到另一個的通信。例如,當我開發一款遊戲時,我通常會將UI線程報告觸摸事件插入到我的遊戲線程中,方法是將它們插入到LinkedBlockingQueue中,然後遊戲線程閒置。

1

該處理器旨在簡化線程。你應該儘可能地使用它,但你只能在由GUI事件調度器管理的線程上使用處理程序。對於大多數遊戲來說,主UI和OpenGL線程由事件調度程序管理,處理程序對它們工作得很好。

1

兩個建議的選項根本不同。用Handlers您正在發佈擁有該處理程序的線程的消息。也就是說,你會發布一條消息給UI線程,以便以某種方式修改UI。使用同步方法,發送消息的線程將成爲正在執行的線程。 Android中的併發抽象是相當不錯的,所以我會敦促你儘可能地使用它們而不是自己動手。