線程可以理解為下載的通道,一個線程就是一個文件的下載通道,多線程也就是同時開啟好幾個下載通道。當(dāng)服務(wù)器提供下載服務(wù)時,使用下載者是共享帶寬的,在優(yōu)先級相同的情況下,總服務(wù)器會對總下載線程進(jìn)行平均分配。不難理解,如果你線程多的話,那下載的越快。
現(xiàn)流行的下載軟件都支持多線程,且支持中途暫停下載,再次開始時不會從頭開始下載。
兩種功能的實(shí)現(xiàn)步驟如下:
(1)連接到下載資源文件時,首先判斷資源文件大小,同步的在本地創(chuàng)建一個大小相同的臨時文件用于存儲下載數(shù)據(jù)。
(2)根據(jù)線程數(shù)量確定每個線程所需下載的文件大小
(3)根據(jù)每個線程下載的文件大小以及線程數(shù)量,決定每個線程的開始下載位置以及結(jié)束下載位置
(4)為實(shí)現(xiàn)斷點(diǎn)下載功能,需要對每個線程實(shí)時下載的位置做標(biāo)記,方便下次開始時繼續(xù)之前進(jìn)度下載
開啟3個線程下載視圖(默認(rèn)下載目錄為java所轄項(xiàng)目):