使用许多线程加速应用程序

时间:2013-11-18 20:46:50

标签: android multithreading image get

我目前正在开发一个Android应用程序,必须从不同的网址获取超过70张图片。我目前正在使用asynctask来获取所有图像。我的应用程序会加载图像更快,如果我要创建许多线程并划分任务在线程之间获得70个图像,如一个线程上的20个和另一个线程上的50个?

4 个答案:

答案 0 :(得分:0)

我想你想同时加载所有70张图片?它可能取决于互联网连接的速度,但基本上我认为完全加载所有图像的时间将是相同的,无论你是顺序加载还是并行加载。顺序地,每个图像可以使用完整的互联网带宽加载,而并行加载图像只能使用一小部分带宽,因此最终总时间大致相同。

答案 1 :(得分:0)

好吧,我可以想象,拥有多个由不同线程管理的http连接可能对性能有益。
确定要使用的线程数(可能> 2)的最佳方法是对整个下载时间的代码进行基准测试(即在开始之前直到所有图像都已加载)。
为了异步下载多个图像,我还建议使用picasso库。

答案 2 :(得分:0)

加速时间很短,因为加载时间是由连接时间引起的。

我认为正确的方法是考虑更好地设计应用程序,避免一次检索70张图像,因为我不知道你的应用程序,但你真的需要同时显示70张图像?最好只在想要显示图像时加载图像。这有两个主要原因:

  1. 您的活动将更快地显示
  2. 您的用户可能没有无限制的数据计划,可能没有使用wi-fi

答案 3 :(得分:0)

  

我目前正在使用asynctask来获取所有图像。我的应用程序   如果我要创建许多线程并划分任务,则加载图像会更快   在一个线程和50个线程之间获得70个图像,如20个   在另一个?

如果您使用单个任务下载所有(70)图像,而这些图像不适合它。当然,如果你想要更快地下载图像,你应该在下载图像时使用单独的任务。(我假设顺序下载图像没有任何限制)如果你继续使用单个任务下载70个图像,它们将被下载一个一个人需要很长时间。

使用库进行图像下载。加载远程图像是一项痛苦的工作。我建议你使用一个库。我目前正在使用ShutterBug。试试吧。

相关问题