java - 在 Android 中的两个工作线程之间传递数据是个好主意吗?

标签 java android multithreading

我决定将一个后台任务拆分为两个线程。因此,我有一个 ScheduledExecutorService ,它管理两个工作线程并每 3 秒定期运行它们。他们执行接下来的两个任务:

  1. 从服务器检索数据
  2. 对此数据进行一些操作

因此,在第一个线程从服务器检索大量数据后,它将其传递给第二个工作线程来转换它。

但我认为这是某种反模式,因为我会这样做 - 一个线程将依赖于另一个线程,从多线程应用程序设计的角度来看,这是不好的。我对还是错,这个解决方案还不错吗?任何特别是从一般设计角度的解释将不胜感激。

最佳答案

这是一个典型的producer/consumer您可以将数据检索线程视为 producer 的示例数据操作线程是消费者。所以我认为设计没有任何问题。

您可以使用适当的类来实现 concurrent.BlockingQueue在线程之间传递消息主要来自 producerconsumer

关于java - 在 Android 中的两个工作线程之间传递数据是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14986774/

相关文章:

java - 输入 if 和 else 语句?

java - 如何在 ListActivity 中将返回按钮赋予工具栏

Java webapp 部署 : explode or not to explode?

android - 从另一种方法在 TextView 中设置文本

java - 使 toast 在互联网连接等待循环之前显示

java - 为什么 ArrayBlockingQueue 在捕获 InterruptedException 后会发出 'not full' 信号?

java - 如何在没有最终字符串的情况下通过不同线程更改 JLabel?

java - Android 中的设备到设备通信

java.lang.ClassNotFoundException : com. facebook.unity.FB 每当我测试我的构建时

Java 事件队列。为什么一切都应该在 invokelater 方法中?