0

我有以下任务:

  1. 从网上下载图片
  2. 使用它创建另一个图像
  3. 将图像保存到 SD 卡并显示

我需要在另一个线程中完成每一步。看来,当我完成加载图像时,我需要将其转移到第二个线程中。

经过一番谷歌搜索后,我意识到我需要为每个线程实现 Callable 接口,然后将其与 ExecutorService 一起使用。问题是我不明白如何传递数据,例如,从第一个线程到第二个线程。

任何人都可以举一个简单的例子吗?谢谢

4

2 回答 2

5

使用BlockingQueueProducer-Consumer 模式

在这种方法中,第一个线程将下载您的图像并将它们放入队列中。第二个线程将等待,直到队列中出现某些内容,转换图像并将其放入另一个队列中,第三个线程将等待。

阅读我链接到的文章以获得更多解释和生产者-消费者模式的工作示例。

于 2012-08-21T08:39:44.357 回答
0

您可以使用 java.util.concurrent.Exchanger。这是两个线程可以交换对象的同步点。有关更多详细信息,请参阅http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Exchanger.html

于 2012-08-21T13:28:49.983 回答