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