我决定将一个后台任务拆分为两个线程。因此,我有一个 ScheduledExecutorService ,它管理两个工作线程并每 3 秒定期运行它们。他们执行接下来的两个任务:
- 从服务器检索数据
- 对此数据进行一些操作
因此,在第一个线程从服务器检索大量数据后,它将其传递给第二个工作线程来转换它。
但我认为这是某种反模式,因为我会这样做 - 一个线程将依赖于另一个线程,从多线程应用程序设计的角度来看,这是不好的。我对还是错,这个解决方案还不错吗?任何特别是从一般设计角度的解释将不胜感激。
最佳答案
这是一个典型的producer/consumer
您可以将数据检索线程视为 producer
的示例数据操作线程是消费者。所以我认为设计没有任何问题。
您可以使用适当的类来实现 concurrent.BlockingQueue
在线程之间传递消息主要来自 producer
到consumer
关于java - 在 Android 中的两个工作线程之间传递数据是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14986774/