Java 我应该使用处理程序类还是同步函数进行线程到线程的通信
我是安卓系统的初学者,所以有一件事: 我的游戏中有多个线程:主活动、渲染器和游戏循环 因此,问题是: 我应该从处理程序类派生类并向线程发送消息,还是应该使用同步函数进行线程到线程的通信 这两种方法的优缺点是什么Java 我应该使用处理程序类还是同步函数进行线程到线程的通信,java,android,multithreading,Java,Android,Multithreading,我是安卓系统的初学者,所以有一件事: 我的游戏中有多个线程:主活动、渲染器和游戏循环 因此,问题是: 我应该从处理程序类派生类并向线程发送消息,还是应该使用同步函数进行线程到线程的通信 这两种方法的优缺点是什么 (我也不是爪哇的专家,C++是我的祖国) < P>处理器是为了简化线程而设计的。您应该尽可能使用它,但只能在GUI事件调度器管理的线程上使用处理程序。对于大多数游戏,主UI和OpenGL线程都由事件调度器管理,处理程序在它们上面工作得很好。这两个建议的选项根本不同。使用处理程序可以为拥有
(我也不是爪哇的专家,C++是我的祖国)
< P>处理器是为了简化线程而设计的。您应该尽可能使用它,但只能在GUI事件调度器管理的线程上使用处理程序。对于大多数游戏,主UI和OpenGL线程都由事件调度器管理,处理程序在它们上面工作得很好。这两个建议的选项根本不同。使用处理程序
可以为拥有该处理程序的线程发布消息。也就是说,您将向UI线程发布一条消息,以便它以某种方式修改UI。对于同步方法,发送消息的线程将是执行消息的线程。Android中的并发抽象非常好,因此我建议您尽可能使用它们,而不是自己使用。当您需要将操作返回到正在运行的活动时,处理程序非常好
当涉及到从UI到我应用程序中其他线程的通信时,我更喜欢使用threadsafe Collections来管理从一个线程到另一个线程的通信。例如,当我开发一个游戏时,我通常会让UI线程通过将触摸事件插入LinkedBlockingQueue来向我的游戏线程报告触摸事件,游戏线程会在空闲时清空该队列