我正在開發一個android應用程序,最初它下載所有的應用程序資源表單服務器,並保存在數據文件夾,其中下載發生在後臺。當用戶在包含gridview的片段之間導航時,下載的資源將顯示在網格項目(imageview)中,否則顯示加載循環,指示資源處於下載狀態。Android多線程下載在後臺的n個資源
下面是我設計下載管理器的方法。
使用ThreadPoolExecuter以默認大小創建4個線程和PriorityBlockingQueue。每個線程都有一個大小爲5的隊列。這裏,輪循函數將檢查每個線程隊列,並將任務添加到具有空閒隊列空間的線程。
有人可以通過給出指針,樣例僞代碼來幫助我達到上述要求。
我實現了上面的場景,但我奮力的區域,其中「每個線程都有大小5.這輪循功能的隊列會檢查每個線程隊列,並增加了任務,其中有免費的隊列中的空間線程」
我一直在想2天如何實現線程與自己的隊列,需要由循環賽方法由PriorityBlockingQueue填充。
我真的不知道你爲什麼做這種方式。您的吞吐量限制不在處理中(您未提及處理文件)其帶寬。通過一次下載多件事情,你可以在多次傳輸之間傳播你的帶寬。我認爲這不會比單次下載一件東西的速度更快。 –
在某種意義上的文件將主要是圖像。更重要的是,我需要並行下載圖像。 – Kruise
加尼,爲什麼?你的限制因素將是帶寬。並行下載多個東西並不會真正起到幫助作用,除非其中一臺服務器的帶寬太低以至於不能使管道飽和。這不太可能,特別是在移動設備上。 –