是Android Handler并发的实现 message passing ?
看来通过使用HandlerThread
,多个工作线程之间的通信很容易。但是,据我了解,并发消息传递是基于使用共享内存的。我尝试去了解Handler的实现机制,但还是不太清楚。
简单来说,Android Handler
是如何工作的?
最佳答案
是的,一个Handler
提供了一种线程间消息传递的形式。 Handler
对象本身是可以从多个线程访问的“共享内存”,但它是线程安全的并为您管理详细信息。
更具体地说,Handler
是一个与 message queue 交互的便捷工具( MessageQueue
) 对于给定线程。当您发布Runnable
时或Message
到 Handler
,它们被添加到 MessageQueue
对于Handler
的线程。该线程本身运行 event loop ( Looper
) 持续处理线程队列中的消息。
如果你想了解Android实现的细节,代码Handler.java
(Android 4.1.1中)可查看on GrepCode 。该类的文档非常详细,而且代码也很容易理解。
关于java - android 中的多线程 : message passing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13192607/