斷點續傳的理解可以分為兩部分:一部分是斷點,一部分是續傳。斷點的由來是在下載過程中,將一個下載文件分成了多個部分,同時進行多個部分一起的下載,當 某個時間點,任務被暫停了,此時下載暫停的位置就是斷點了。續傳就是當一個未完成的下載任務再次開始時,會從上次的斷點繼續傳送。
使用多線程斷點續傳下載的時候,將下載或上傳任務(一個文件或一個壓縮包)人為的劃分為幾個部分,每一個部分采用一個線程進行上傳或下載,多個線程并發可以占用服務器端更多資源,從而加快下載速度。
在下載(或上傳)過程中,如果網絡故障、電量不足等原因導致下載中斷,這就需要使用到斷點續傳功能。下次啟動時,可以從記錄位置(已經下載的部分)開始,繼續下載以后未下載的部分,避免重復部分的下載。斷點續傳實質就是能記錄上一次已下載完成的位置。
斷點續傳的過程
- 1.斷點續傳需要在下載過程中記錄每條線程的下載進度;
- 2.每次下載開始之前先讀取數據庫,查詢是否有未完成的記錄,有就繼續下載,沒有則創建新記錄插入數據庫;
- 3.在每次向文件中寫入數據之后,在數據庫中更新下載進度;
- 4.下載完成之后刪除數據庫中下載記錄。
更多:iOS面試題合集