java - 多线程时我需要多少个处理程序

标签 java android multithreading handler runnable

我已经尝试用谷歌搜索了一段时间,但找不到任何明确的答案。我有一个应该监听多个 UDP 端口的 Android 软件。如果我没记错的话,我必须为每个端口创建自己的线程。端口收到数据后,应该将其传递给 UI 线程。

经过一番研究后,我得出结论,我应该使用处理程序向 UI 线程提供数据。但是,我对需要多少处理程序感到有点困惑。每个线程是否需要自己的处理程序或单独共享一个就足够了?

对于一些背景信息,我正在尝试创建定时线程,它每 100 毫秒检查一次接收到的 UDP 数据包,并将它们的内容更新到 UI 线程的 View 。

最佳答案

我会在 UI 线程上创建一个 Handler 并将该处理程序引用传递给每个线程(因此您只需要 1 个处理程序对象)。这样,由于处理程序是在 UI 线程上创建的,因此其 handleMessage 将在 UI 线程上执行 - 但要注意,通过 handleMessage 处理的每条消息都将执行得非常快。

关于java - 多线程时我需要多少个处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17966816/

相关文章:

c# - Winforms 主 UI 线程主体恢复到以前的状态

python - 从正在运行的线程调用其他线程上的协程

java - 使用 java.util.Scanner 将输入添加到 arrayList

java - 访问Java中的其他类文件

java - 如何在 Spring Boot 测试中设置 'headless' 属性?

java - 在 DialogFragment 从网站下载图片后,ImageView 上方出现青色条

android - 使用 greenDao 持久化字符串数组

multithreading - 如何从线程显示 "Please wait "模态表单并在工作完成后释放它?

java - NoClassDefFoundError:如何确定未找到哪个类定义

Android SurfaceView Bitmap 质量比 XML 中的 ImageView 差