java - android 中的多线程 : message passing

标签 java android multithreading concurrency android-handler

是Android Handler并发的实现 message passing

看来通过使用HandlerThread,多个工作线程之间的通信很容易。但是,据我了解,并发消息传递是基于使用共享内存的。我尝试去了解Handler的实现机制,但还是不太清楚。

简单来说,Android Handler 是如何工作的?

最佳答案

是的,一个Handler提供了一种线程间消息传递的形式。 Handler对象本身是可以从多个线程访问的“共享内存”,但它是线程安全的并为您管理详细信息。

更具体地说,Handler是一个与 message queue 交互的便捷工具( MessageQueue ) 对于给定线程。当您发布Runnable时或MessageHandler ,它们被添加到 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/

相关文章:

c# - C#数据库阻塞线程不利于大量客户端

python - 关于keras.utils.Sequence的澄清

java - 如何在 Mac OS X Snow Leopard 上重新安装 Java 6

java - 检查 PreparedStatement 中的所有占位符是否已填充

java - Android 中的自定义异步 Http 客户端

Android Studio 矢量资源失真

java - 今天第一次使用 eclipse...而且 eclipse 我真的不喜欢它。还有哪些其他更清洁的替代方案?

java - 我知道如何找到中点,但在这段代码中,我不确定如果我们添加它的值,将如何计算中点

android - 我的 Android 应用程序在按下主页按钮后崩溃

C# 多线程 : Acquire read lock necessary?