【问题标题】:Upload Bulk Image in MultipuleThread android在MultipuleThread android中上传批量图像
【发布时间】:2014-07-17 16:57:20
【问题描述】:

现在我正在使用异步任务在单线程中上传图像。但它效率不高,上传需要很多时间。所以我引用这个link 来使用 ThreadPoolExecuter 下载图像。我可以在上传图片的同时使用这个策略吗?

这是上传图片的好习惯吗?

【问题讨论】:

    标签: android multithreading image-uploading bulkloader


    【解决方案1】:

    您可以在单独的线程中下载和上传图像,这非常好。

    如果您想为此使用多个线程,由于带宽有限(多个线程不会加快进程)和分区问题(在服务器上),这将毫无意义。

    【讨论】:

    • 根据你的情况。无需为它创建多个线程。单个后台线程使用 IntentService 解决这个问题即使有超过 50 个图像??
    • 这里的关键因素是 IO 带宽。即使使用 HSDPA(LTE 并非无处不在),您也可以一次上传 1 张图像。因此,即使您为 50 个图像创建并启动 50 个线程,它们都会排队(由于 IO 锁定),这实际上使我们返回到每 50 个图像有 1 个线程。您还可以使用您发布的谷歌文档链接中的Loaders
    • 我完全不同意这个评估。根据图像的性质/大小/压缩,多线程上传可能会加快 2-10 倍。您的 IO 很少会比您的网络慢。 (目前我正在将 >50,000 个 120MB 的图像上传到 s3,并且线程确实加快了速度)更多证据here
    • 那么,这是否加快了速度?
    • 是的,我在我的项目上试了一下,效果非常好。
    【解决方案2】:

    这是上传图片的好习惯吗?

    是的,如果您不担心跟踪每次执行(即线程何时完成其任务),这可能是一个选项。

    看看google doc 怎么说

    它们通常在执行大量数字时提供更好的性能 异步任务,由于减少了每个任务的调用开销, 它们提供了一种限制和管理资源的方法, 包括线程,在执行任务集合时消耗。

    【讨论】:

      猜你喜欢
      • 2012-05-24
      • 1970-01-01
      • 2012-10-11
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 2019-11-22
      相关资源
      最近更新 更多