欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多任務(wù)下載的方法及終端的制作方法

文檔序號(hào):6444176閱讀:260來(lái)源:國(guó)知局
專利名稱:一種多任務(wù)下載的方法及終端的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及瀏覽器任務(wù)下載技術(shù)領(lǐng)域,尤其涉及一種電視機(jī)等終端上基于 javascript擴(kuò)展實(shí)現(xiàn)的多任務(wù)下載的方法及終端。
背景技術(shù)
目前,瀏覽器已廣泛應(yīng)用于電視機(jī),在電視機(jī)上通過(guò)瀏覽器瀏覽網(wǎng)頁(yè)下載文件,已成為電視機(jī)下載文件的主要手段。但是,傳統(tǒng)的電視機(jī)通過(guò)瀏覽器下載文件均屬于單任務(wù)下載,而且下載任務(wù)與瀏覽器處于同一個(gè)進(jìn)程,若需要從電視機(jī)的瀏覽器上下載多個(gè)文件,則只能等待當(dāng)前下載任務(wù)完成后,再啟動(dòng)下一個(gè)下載任務(wù),勢(shì)必影響了網(wǎng)頁(yè)的整體性能,浪費(fèi)了 CPU資源,而且由于瀏覽器耗時(shí)、耗能,影響了瀏覽器性能,導(dǎo)致用戶瀏覽網(wǎng)頁(yè)時(shí)的體驗(yàn)效果變差,給用戶在操作上帶來(lái)諸多不便。

發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種多任務(wù)下載的方法及終端,旨在實(shí)現(xiàn)瀏覽器的多任務(wù)并發(fā)下載,提高用戶體驗(yàn)效果。為了達(dá)到上述目的,本發(fā)明提出一種多任務(wù)下載的方法,包括瀏覽器啟動(dòng),在瀏覽器中加載用于下載管理的動(dòng)態(tài)庫(kù);通過(guò)所述瀏覽器的網(wǎng)頁(yè)接收用戶的下載指令,并通過(guò)所述瀏覽器的javascript 擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在共享內(nèi)存中寫入數(shù)據(jù);所述共享內(nèi)存由所述瀏覽器和下載進(jìn)程共同創(chuàng)建;啟動(dòng)所述下載進(jìn)程,從所述共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載。優(yōu)選地,所述共享內(nèi)存中的數(shù)據(jù)包括控制標(biāo)志位以及下載信息;所述下載信息至少包括以下一個(gè)下載任務(wù)個(gè)數(shù)、下載地址、下載完成后的保存路、子進(jìn)程標(biāo)識(shí)。優(yōu)選地,所述啟動(dòng)下載進(jìn)程,從所述共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載的步驟包括父進(jìn)程啟動(dòng)下載進(jìn)程,并讀取所述共享內(nèi)存中的控制標(biāo)志位;當(dāng)所述控制標(biāo)志位為第一預(yù)定值吋,所述父進(jìn)程讀取所述共享內(nèi)存中的下載信息,并根據(jù)所述下載信息,創(chuàng)建至少兩個(gè)用于下載任務(wù)的子進(jìn)程;通過(guò)所述子進(jìn)程進(jìn)行多任務(wù)下載。優(yōu)選地,所述通過(guò)子進(jìn)程進(jìn)行多任務(wù)下載的步驟包括所述子進(jìn)程創(chuàng)建各自的下載子線程;并通過(guò)主線程控制所述子線程執(zhí)行相應(yīng)下載任務(wù)。優(yōu)選地,該方法還包括在多任務(wù)下載過(guò)程中,通過(guò)所述瀏覽器的網(wǎng)頁(yè)接收用戶的下載更新指令;
通過(guò)所述瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在所述共享內(nèi)存中更新控制標(biāo)志位的值并寫入下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)。優(yōu)選地,所述通過(guò)子進(jìn)程進(jìn)行多任務(wù)下載的步驟還包括所述子進(jìn)程的主線程監(jiān)聽所述共享內(nèi)存中的控制標(biāo)志位;當(dāng)所述共享內(nèi)存中的控制標(biāo)志位為非所述第一預(yù)定值時(shí),獲取所述共享內(nèi)存中下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí);比較所述下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)與所述主線程當(dāng)前的子進(jìn)程標(biāo)識(shí);若兩者不一致,則保持當(dāng)前子線程的下載進(jìn)程的狀態(tài);否則所述主線程根據(jù)所述共享內(nèi)存中的控制標(biāo)志位,控制當(dāng)前子線程的下載任務(wù)的狀態(tài)。本發(fā)明還提出ー種多任務(wù)下載的終端,包括瀏覽器模塊及任務(wù)下載模塊,其中所述瀏覽器模塊包括加載單元,用于在瀏覽器啟動(dòng)時(shí),在所述瀏覽器中加載用于下載管理的動(dòng)態(tài)庫(kù);接收單元,用于通過(guò)所述瀏覽器的網(wǎng)頁(yè)接收用戶的下載指令;寫入?yún)g元,用于通過(guò)所述瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在共享內(nèi)存中寫入數(shù)據(jù);所述共享內(nèi)存由所述瀏覽器和下載進(jìn)程共同創(chuàng)建;所述任務(wù)下載模塊,用于啟動(dòng)所述下載進(jìn)程,從所述共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載。優(yōu)選地,所述任務(wù)下載模塊包括 父進(jìn)程單元,用于啟動(dòng)下載進(jìn)程,并讀取所述共享內(nèi)存中的控制標(biāo)志位;當(dāng)所述控制標(biāo)志位為第一預(yù)定值時(shí),讀取所述共享內(nèi)存中的下載信息,并根據(jù)所述下載信息,創(chuàng)建至少兩個(gè)用于下載任務(wù)的子進(jìn)程。子進(jìn)程單元,用于通過(guò)所述子進(jìn)程進(jìn)行多任務(wù)下載。優(yōu)選地,所述子進(jìn)程単元包括創(chuàng)建單元,用于創(chuàng)建下載任務(wù)的子線程;子線程單元,用于執(zhí)行所述子線程對(duì)應(yīng)的下載任務(wù);主線程單元,用于控制所述子線程單元執(zhí)行相應(yīng)下載任務(wù)。優(yōu)選地,所述接收単元,還用于在多任務(wù)下載過(guò)程中,通過(guò)所述瀏覽器的網(wǎng)頁(yè)接收用戶的下載更新指令;所述寫入?yún)g元,還用于通過(guò)所述瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在所述共享內(nèi)存中更新控制標(biāo)志位的值并寫入下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)。優(yōu)選地,所述主線程單元還用于監(jiān)聽所述共享內(nèi)存中的控制標(biāo)志位;當(dāng)所述共享內(nèi)存中的控制標(biāo)志位為非所述第一預(yù)定值時(shí),獲取所述共享內(nèi)存中下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí);比較所述下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)與所述主線程當(dāng)前的子進(jìn)程標(biāo)識(shí);若兩者不一致,則保持當(dāng)前子線程的下載進(jìn)程的狀態(tài);否則,根據(jù)所述共享內(nèi)存中的控制標(biāo)志位,控制當(dāng)前子線程的下載任務(wù)的狀態(tài)。本發(fā)明提出的一種多任務(wù)下載的方法及終端,基于電視機(jī)等終端瀏覽器的 javascript擴(kuò)展,將瀏覽器下載任務(wù)與瀏覽器獨(dú)立起來(lái),使瀏覽器能夠多任務(wù)并發(fā)下載,在下載的過(guò)程中,可人為控制某個(gè)正在下載狀態(tài),比如暫停、取消、繼續(xù)等動(dòng)作,提高了 CPU 資源利用率及瀏覽器性能,同時(shí)具有高效、人性化等特點(diǎn),使得用戶具有良好的體驗(yàn)性。


圖1是本發(fā)明一種多任務(wù)下載的方法第一實(shí)施例的流程示意圖;圖2是本發(fā)明一種多任務(wù)下載的方法第一實(shí)施例中啟動(dòng)下載進(jìn)程,從共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載的流程示意圖;圖3是本發(fā)明一種多任務(wù)下載的方法第二實(shí)施例的流程示意圖;圖4是本發(fā)明一種多任務(wù)下載的方法第二實(shí)施例中通過(guò)子進(jìn)程進(jìn)行多任務(wù)下載的流程示意圖;圖5是本發(fā)明一種多任務(wù)下載的終端第一實(shí)施例的結(jié)構(gòu)示意圖;圖6是本發(fā)明一種多任務(wù)下載的終端第一實(shí)施例中瀏覽器模塊的結(jié)構(gòu)示意圖;圖7是本發(fā)明一種多任務(wù)下載的終端第一實(shí)施例中任務(wù)下載模塊的結(jié)構(gòu)示意圖;圖8是本發(fā)明一種多任務(wù)下載的終端第一實(shí)施例中子進(jìn)程單元的結(jié)構(gòu)示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)ー步說(shuō)明。
具體實(shí)施例方式本發(fā)明的主要解決方案是基于電視機(jī)等終端瀏覽器的javascript擴(kuò)展,把瀏覽器下載任務(wù)與瀏覽器獨(dú)立起來(lái),使瀏覽器能夠多任務(wù)并發(fā)下載,充分利用CPU資源,提高用戶體驗(yàn)效果。本發(fā)明中終端可以為安裝有瀏覽器的電視機(jī)、電腦等,以下各實(shí)施例以終端為電視機(jī)為例進(jìn)行說(shuō)明。電視機(jī)中的瀏覽器和任務(wù)下載進(jìn)程間的通信通過(guò)共享內(nèi)存的方式進(jìn)行,瀏覽器與任務(wù)下載進(jìn)程之間的同步和互斥通過(guò)信號(hào)量方式的加鎖和解鎖來(lái)實(shí)現(xiàn)。當(dāng)用戶操作網(wǎng)頁(yè)上的按鈕時(shí),會(huì)調(diào)用瀏覽器內(nèi)核javascript擴(kuò)展接ロ,javascript擴(kuò)展接ロ調(diào)用動(dòng)態(tài)庫(kù)相應(yīng)的函數(shù)接ロ,對(duì)共享內(nèi)存進(jìn)行寫入操作,其中,所述共享內(nèi)存由所述瀏覽器和下載進(jìn)程共同創(chuàng)建;下載進(jìn)程通過(guò)不斷讀取共享內(nèi)存的數(shù)據(jù),根據(jù)讀到的不同數(shù)據(jù)進(jìn)行相應(yīng)的處理,當(dāng)讀到需要多任務(wù)下載吋,則啟動(dòng)多個(gè)下載任務(wù)子進(jìn)程,從而實(shí)現(xiàn)多任務(wù)下載。具體地,請(qǐng)參照?qǐng)D1,圖1為本發(fā)明一種多任務(wù)下載的方法第一實(shí)施例的流程示意圖。本發(fā)明第一實(shí)施例提出的一種多任務(wù)下載的方法,包括步驟S101,瀏覽器啟動(dòng),在瀏覽器中加載用于下載管理的動(dòng)態(tài)庫(kù);步驟S102,通過(guò)瀏覽器的網(wǎng)頁(yè)接收用戶的下載指令,并通過(guò)瀏覽器的javascript 擴(kuò)展接ロ調(diào)用動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在共享內(nèi)存中寫入數(shù)據(jù);上述步驟SlOl及步驟S102中,以電視機(jī)為例,當(dāng)用戶打開電視機(jī)的主菜單進(jìn)入瀏覽器的下載頁(yè)面吋,瀏覽器啟動(dòng)并加載用于下載管理的動(dòng)態(tài)庫(kù)(libchdownloadmanager. so)。這些陣具有相應(yīng)的操作函數(shù),比如downIoadmanager resume> downloadmanager pause、 downloaamanager_cancel> aownloadmanager_downloadtasklist、 downloadmanager_getTaskList,上述各函數(shù)分別對(duì)應(yīng)的下載狀態(tài)為繼續(xù)、停止、取消、 下載任務(wù)列表、獲取任務(wù)列表。如果瀏覽器進(jìn)入下載頁(yè)面,則瀏覽器的下載頁(yè)面自動(dòng)調(diào)用CHdownloadmanagerJnitialize函數(shù),該函數(shù)的功能是創(chuàng)建共享內(nèi)存和信號(hào)量。瀏覽器的下載網(wǎng)頁(yè)對(duì)這些函數(shù)的調(diào)用必須經(jīng)過(guò)瀏覽器內(nèi)核的javascript擴(kuò)展接 ロ。當(dāng)用戶操作瀏覽器網(wǎng)頁(yè)上的按鈕時(shí),瀏覽器的下載網(wǎng)頁(yè)會(huì)調(diào)用瀏覽器內(nèi)核javascript 擴(kuò)展接ロ,javascript擴(kuò)展接ロ則調(diào)用下載管理的動(dòng)態(tài)庫(kù)相應(yīng)的函數(shù)接ロ,所述動(dòng)態(tài)庫(kù)則對(duì)共享內(nèi)存進(jìn)行寫入操作。如上所述,電視機(jī)中的瀏覽器和任務(wù)下載進(jìn)程間的通信通過(guò)共享內(nèi)存的方式進(jìn)行,該共享內(nèi)存由瀏覽器與下載進(jìn)程共同創(chuàng)建。當(dāng)用戶進(jìn)入瀏覽器的下載頁(yè)面吋,下載進(jìn)程啟動(dòng)后,創(chuàng)建共享內(nèi)存和信號(hào)量。在瀏覽器側(cè),當(dāng)用戶進(jìn)入瀏覽器的下載頁(yè)面吋,瀏覽器的下載頁(yè)面自動(dòng)調(diào)用 CHdownloadmanager_Initialize函數(shù),創(chuàng)建共享內(nèi)存和信號(hào)量。比如,當(dāng)用戶點(diǎn)擊網(wǎng)頁(yè)的選擇按鈕,瀏覽器將該下載加到任務(wù)列表,當(dāng)用戶再按下載按鈕時(shí),瀏覽器的下載網(wǎng)頁(yè)則通過(guò)doWnloadmanager_doWnloadtasklist函數(shù)把下載任務(wù)以json數(shù)據(jù)格式傳下來(lái),通過(guò)解析json得到相應(yīng)的數(shù)據(jù),瀏覽器再將此數(shù)據(jù)寫到共享內(nèi)存。上述共享內(nèi)存中的數(shù)據(jù)包括控制標(biāo)志位以及下載信息;其中下載信息至少包括以下的ー個(gè)下載任務(wù)個(gè)數(shù)、下載地址、下載完成后的保存路徑、子進(jìn)程標(biāo)識(shí)(AppKey)??刂茦?biāo)志位的值可以預(yù)先設(shè)定,比如可以設(shè)定控制標(biāo)志位的值為0、1、2、3、4、5 等,其中各值的含義可以采用如下設(shè)定0表示共享內(nèi)存為空,1表示下載;2表示暫停;3表示取消;4表示繼續(xù);5表示退出等。子進(jìn)程標(biāo)識(shí)是各個(gè)下載子進(jìn)程的標(biāo)識(shí),當(dāng)用戶有多個(gè)下載任務(wù)時(shí),下載進(jìn)程的父進(jìn)程將根據(jù)共享內(nèi)存中的下載信息創(chuàng)建與各子進(jìn)程標(biāo)識(shí)對(duì)應(yīng)的子進(jìn)程,各子進(jìn)程再執(zhí)行各自的下載任務(wù)。步驟S103,啟動(dòng)下載進(jìn)程,從共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載。當(dāng)用戶進(jìn)入瀏覽器的下載頁(yè)面,下載進(jìn)程的父進(jìn)程不斷監(jiān)聽共享內(nèi)存的數(shù)據(jù)。當(dāng)用戶操作瀏覽器網(wǎng)頁(yè)上的按鈕吋,下載進(jìn)程的父進(jìn)程開始讀取共享內(nèi)存中的控制標(biāo)志位。 如果讀到的控制標(biāo)志位為1,說(shuō)明用戶有下載請(qǐng)求,父進(jìn)程則會(huì)進(jìn)ー步讀取共享內(nèi)存的下載信息,根據(jù)下載信息,父進(jìn)程通過(guò)fork函數(shù)創(chuàng)建下載的子進(jìn)程,每個(gè)子進(jìn)程對(duì)應(yīng)ー個(gè)共享內(nèi)存的下載信息中的子進(jìn)程標(biāo)識(shí)。以兩個(gè)下載任務(wù)為例,若父進(jìn)程監(jiān)測(cè)到共享內(nèi)存的控制標(biāo)志位為1,則進(jìn)ー步讀取共享內(nèi)存的下載信息(例如下載任務(wù)個(gè)數(shù)、下載地址、下載完后保存的路徑、子進(jìn)程標(biāo)識(shí)等信息),父進(jìn)程通過(guò)fork函數(shù)創(chuàng)建出兩個(gè)下載的子進(jìn)程,各子進(jìn)程通過(guò)pthreacLcreate函數(shù)創(chuàng)建真正的下載子線程,該下載子線程會(huì)調(diào)用Curldownload函數(shù)開始下載。具體實(shí)施過(guò)程中,如圖2所示,上述步驟S103包括步驟S1031,父進(jìn)程啟動(dòng)下載進(jìn)程,并讀取共享內(nèi)存中的控制標(biāo)志位;步驟S1032,當(dāng)控制標(biāo)志位為第一預(yù)定值吋,父進(jìn)程讀取共享內(nèi)存中的下載信息, 井根據(jù)下載信息,創(chuàng)建至少兩個(gè)用于下載任務(wù)的子進(jìn)程;其中,第一預(yù)定值為上述設(shè)定的下載按鈕對(duì)應(yīng)的值1。步驟S1033,通過(guò)子進(jìn)程進(jìn)行多任務(wù)下載。
子進(jìn)程創(chuàng)建各自的下載子線程;并通過(guò)主線程控制子線程進(jìn)行相應(yīng)任務(wù)下載。本實(shí)施例基于電視機(jī)瀏覽器的javascript擴(kuò)展,把瀏覽器下載任務(wù)與瀏覽器獨(dú)立起來(lái),使瀏覽器能夠多任務(wù)并發(fā)下載,提高CPU資源利用率及瀏覽器性能,同時(shí)使得用戶具有良好體驗(yàn)效果。如圖3所示,本發(fā)明第二實(shí)施例提出的一種多任務(wù)下載的方法,在上述實(shí)施例的基礎(chǔ)上,在上述步驟S103之后進(jìn)ー步還包括步驟S104,在多任務(wù)下載過(guò)程中,通過(guò)瀏覽器的網(wǎng)頁(yè)接收用戶的下載更新指令;步驟S105,通過(guò)瀏覽器的javascript擴(kuò)展接ロ調(diào)用動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在共享內(nèi)存中更新控制標(biāo)志位的值并寫入下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)。本實(shí)施例與上述實(shí)施例的區(qū)別在于,本實(shí)施例在實(shí)現(xiàn)多任務(wù)并行下載的同吋,在下載過(guò)程中,還可以根據(jù)用戶需要,改變當(dāng)前下載狀態(tài),比如取消、暫停、繼續(xù)等操作。當(dāng)某個(gè)子進(jìn)程的下載任務(wù)狀態(tài)改變吋,瀏覽器根據(jù)用戶的下載更新指令更新共享內(nèi)存中的數(shù)據(jù),包括改變控制標(biāo)志位的值以及寫入改變后的子進(jìn)程的標(biāo)識(shí)。后續(xù)下載進(jìn)程將根據(jù)共享內(nèi)存中更新后的控制標(biāo)志位及下載狀態(tài)改變后的子進(jìn)程標(biāo)識(shí)控制相應(yīng)的子進(jìn)程的下載狀態(tài)。瀏覽器的下載網(wǎng)頁(yè)通過(guò)每隔一定時(shí)間調(diào)用downloadmanageLgetTaskList獲取下載任務(wù)的狀態(tài),該函數(shù)通過(guò)不斷讀取已經(jīng)下載文件的大小等信息并打包轉(zhuǎn)換成json數(shù)據(jù)格式,下載網(wǎng)頁(yè)解析該json包,獲取各子進(jìn)程的下載狀態(tài)。如果用戶按了暫停取消繼續(xù)等按鈕,瀏覽器的下載網(wǎng)頁(yè)則調(diào)用 libchdownloadmanager. so相應(yīng)的函數(shù)接ロ,將相應(yīng)的控制標(biāo)志位(比如2、3、4)和下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)(AppKey)寫入共享內(nèi)存。下載的子進(jìn)程不斷共享上述共享內(nèi)存的控制標(biāo)志位和AppKey,通過(guò)主線程不斷監(jiān)聽共享內(nèi)存,并控制下載狀態(tài)的改變。如果用戶需要改變某一子進(jìn)程下載任務(wù)的狀態(tài),主線程通過(guò)讀取共享內(nèi)存的控制標(biāo)志位和AppKey (子進(jìn)程標(biāo)識(shí)),并把讀到的AppKey和自身的 AppKey比較,如果兩者比較相同,即表明是自身下載任務(wù)的AppKey,說(shuō)明用戶要改變?cè)撓螺d任務(wù)的狀態(tài),主線程則調(diào)用相應(yīng)的函數(shù)來(lái)控制子線程的下載任務(wù)的狀態(tài),并對(duì)共享內(nèi)存進(jìn)行清0,否則返回繼續(xù)讀取共享內(nèi)存,以此類推。直到全部下載任務(wù)完成,子進(jìn)程全部退出,整個(gè)下載結(jié)束。具體地,如圖4所示,在本實(shí)施例中,通過(guò)子進(jìn)程進(jìn)行多任務(wù)下載的步驟還包括步驟S10331,子進(jìn)程的主線程監(jiān)聽共享內(nèi)存中的控制標(biāo)志位;步驟S10332,當(dāng)共享內(nèi)存中的控制標(biāo)志位為非第一預(yù)定值時(shí),獲取共享內(nèi)存中下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí);步驟S10333,比較下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)與主線程當(dāng)前的子進(jìn)程標(biāo)識(shí);若兩者不一致,則進(jìn)入步驟S10334 ;否則,進(jìn)入步驟S10335 ;步驟S10334,保持當(dāng)前子線程的下載進(jìn)程的狀態(tài);步驟S10335,主線程根據(jù)共享內(nèi)存中的控制標(biāo)志位,控制當(dāng)前子線程的下載任務(wù)的狀態(tài)。以兩個(gè)下載任務(wù)為例,對(duì)本實(shí)施例技術(shù)方案進(jìn)行詳細(xì)說(shuō)明當(dāng)下載進(jìn)程啟動(dòng)后,若父進(jìn)程監(jiān)測(cè)到共享內(nèi)存的控制標(biāo)志位為1,則進(jìn)ー步讀取共享內(nèi)存的下載信息(例如下載任務(wù)個(gè)數(shù)、下載地址、下載完后保存的路徑、AppKey等信息), 父進(jìn)程通過(guò)fork函數(shù)創(chuàng)建出兩個(gè)下載的子進(jìn)程,各子進(jìn)程通過(guò)pthreacLcreate函數(shù)創(chuàng)建真正的下載子線程,該下載子線程會(huì)調(diào)用Curldownload函數(shù)開始下載。在下載過(guò)程中,若用戶對(duì)其中一個(gè)子進(jìn)程選擇了改變下載狀態(tài)的按鍵(比如取消按鍵),各子進(jìn)程的主線程通過(guò)監(jiān)聽共享內(nèi)存中的控制標(biāo)志位獲知,共享內(nèi)存中的控制標(biāo)志位已經(jīng)更新為3,則從共享內(nèi)存中獲取下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí),判斷該下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)是否為自身子進(jìn)程的標(biāo)識(shí),若是,則表明用戶需要改變自身子進(jìn)程的下載狀態(tài), 該下載狀態(tài)改變的子進(jìn)程的主線程將對(duì)應(yīng)該控制標(biāo)志位3,控制子線程取消當(dāng)前子進(jìn)程的下載狀態(tài)。以此類推,直到所有的子進(jìn)程下載過(guò)程處理(包括下載、暫停取消等)完畢。本實(shí)施例基于電視機(jī)瀏覽器的javascript擴(kuò)展,使瀏覽器能夠多任務(wù)并發(fā)下載, 在任務(wù)下載的過(guò)程中,可以人為的控制某個(gè)正在下載狀態(tài),比如暫停、取消、繼續(xù)等動(dòng)作。 該方案把瀏覽器下載任務(wù)與瀏覽器獨(dú)立起來(lái),真正實(shí)現(xiàn)多任務(wù)下載,從而充分利用CPU資源,具有高效、人性化等特點(diǎn),使得用戶有良好體驗(yàn)性。如圖5所示,本發(fā)明第一實(shí)施例提出ー種多任務(wù)下載的終端,包括瀏覽器模塊 501及任務(wù)下載模塊502,其中瀏覽器模塊501,用于在瀏覽器啟動(dòng)時(shí),在瀏覽器中加載用于下載管理的動(dòng)態(tài)庫(kù); 通過(guò)瀏覽器的網(wǎng)頁(yè)接收用戶的下載指令,并通過(guò)瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在共享內(nèi)存中寫入數(shù)據(jù),其中,所述共享內(nèi)存由所述瀏覽器和下載進(jìn)程共同創(chuàng)建;任務(wù)下載模塊502,用于啟動(dòng)下載進(jìn)程,從共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載。以電視機(jī)為例,當(dāng)用戶打開電視機(jī)的主菜單進(jìn)入瀏覽器的下載頁(yè)面吋,瀏覽器通過(guò)瀏覽器模塊501啟動(dòng)并加載用于下載管理的動(dòng)態(tài)庫(kù)(libchdownloadmanager. so)。這些庫(kù)具有相應(yīng)的操作函數(shù),比如down Ioadmanager resume λ down loadmanager pause、 downloadmanager_cancelλ downloadmanager_downloadtaski1st、 downloadmanager_ getTaskList,上述各函數(shù)分別對(duì)應(yīng)的下載狀態(tài)為繼續(xù)、停止、取消、下載任務(wù)列表、獲取任務(wù)列表。如果瀏覽器進(jìn)入下載頁(yè)面,則瀏覽器的下載頁(yè)面自動(dòng)調(diào)用CHdownloadmanaget Initialize函數(shù),該函數(shù)的功能是創(chuàng)建共享內(nèi)存和信號(hào)量。瀏覽器的下載網(wǎng)頁(yè)對(duì)這些函數(shù)的調(diào)用必須經(jīng)過(guò)瀏覽器內(nèi)核的javascript擴(kuò)展接 ロ。當(dāng)用戶操作瀏覽器網(wǎng)頁(yè)上的按鈕時(shí),瀏覽器的下載網(wǎng)頁(yè)會(huì)調(diào)用瀏覽器內(nèi)核javascript 擴(kuò)展接ロ,javascript擴(kuò)展接ロ則調(diào)用動(dòng)態(tài)庫(kù)相應(yīng)的函數(shù)接ロ,動(dòng)態(tài)庫(kù)則對(duì)共享內(nèi)存進(jìn)行寫入操作。當(dāng)用戶有多任務(wù)下載請(qǐng)求時(shí),任務(wù)下載模塊502啟動(dòng)下載進(jìn)程,從共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載。電視機(jī)中的瀏覽器和任務(wù)下載進(jìn)程間的通信通過(guò)共享內(nèi)存的方式進(jìn)行,該共享內(nèi)存由瀏覽器與下載進(jìn)程共同創(chuàng)建。當(dāng)用戶進(jìn)入瀏覽器的下載頁(yè)面吋,下載進(jìn)程啟動(dòng)后,創(chuàng)建共享內(nèi)存和信號(hào)量。在瀏覽器側(cè),當(dāng)用戶進(jìn)入瀏覽器的下載頁(yè)面吋,瀏覽器的下載頁(yè)面自動(dòng)調(diào)用 CHdownloadmanager Initialize函數(shù),創(chuàng)建共享內(nèi)存和信號(hào)量。
比如,當(dāng)用戶點(diǎn)擊網(wǎng)頁(yè)的選擇按鈕,瀏覽器將該下載加到任務(wù)列表,當(dāng)用戶再按下載按鈕時(shí),瀏覽器的下載網(wǎng)頁(yè)則通過(guò)doWnloadmanager_doWnloadtasklist函數(shù)把下載任務(wù)以json數(shù)據(jù)格式傳下來(lái),通過(guò)解析json得到相應(yīng)的數(shù)據(jù),瀏覽器再將此數(shù)據(jù)寫到共享內(nèi)存。上述共享內(nèi)存中的數(shù)據(jù)包括控制標(biāo)志位以及下載信息;其中下載信息至少包括以下ー個(gè)下載任務(wù)個(gè)數(shù)、下載地址、下載完成后的保存路徑、子進(jìn)程標(biāo)識(shí)(AppKey)??刂茦?biāo)志位的值可以預(yù)先設(shè)定,比如可以設(shè)定控制標(biāo)志位的值為0、1、2、3、4、5 等,其中各值的含義可以采用如下設(shè)定0表示共享內(nèi)存為空,1表示下載;2表示暫停;3表示取消;4表示繼續(xù);5表示退出等。子進(jìn)程標(biāo)識(shí)是各個(gè)下載子進(jìn)程的標(biāo)識(shí),當(dāng)用戶有多個(gè)下載任務(wù)時(shí),下載進(jìn)程的父進(jìn)程將根據(jù)共享內(nèi)存中的下載信息創(chuàng)建與各子進(jìn)程標(biāo)識(shí)對(duì)應(yīng)的子進(jìn)程,各子進(jìn)程再執(zhí)行各自的下載任務(wù)。當(dāng)用戶進(jìn)入瀏覽器的下載頁(yè)面,下載進(jìn)程的父進(jìn)程不斷監(jiān)聽共享內(nèi)存的數(shù)據(jù)。當(dāng)用戶操作瀏覽器網(wǎng)頁(yè)上的按鈕吋,下載進(jìn)程的父進(jìn)程開始讀取共享內(nèi)存中的控制標(biāo)志位。 如果讀到的控制標(biāo)志位為1,說(shuō)明用戶有下載請(qǐng)求,父進(jìn)程則會(huì)進(jìn)ー步讀取共享內(nèi)存的下載信息,根據(jù)下載信息,父進(jìn)程通過(guò)fork函數(shù)創(chuàng)建下載的子進(jìn)程,每個(gè)子進(jìn)程對(duì)應(yīng)ー個(gè)共享內(nèi)存的下載信息中的子進(jìn)程標(biāo)識(shí)。以兩個(gè)下載任務(wù)為例,若父進(jìn)程監(jiān)測(cè)到共享內(nèi)存的控制標(biāo)志位為1,則進(jìn)ー步讀取共享內(nèi)存的下載信息(下載任務(wù)個(gè)數(shù)、下載地址、下載完后保存的路徑、AppKey等信息),父進(jìn)程通過(guò)fork函數(shù)創(chuàng)建出兩個(gè)下載的子進(jìn)程,各子進(jìn)程通過(guò)pthreacLcreate函數(shù)創(chuàng)建真正的下載子線程,該下載子線程會(huì)調(diào)用Curldownload函數(shù)開始下載。通過(guò)上述過(guò)程可以實(shí)現(xiàn)兩個(gè)或多個(gè)任務(wù)并行下載。進(jìn)ー步的,本實(shí)施例在實(shí)現(xiàn)多任務(wù)并行下載的同吋,在下載過(guò)程中,還可以根據(jù)用戶需要,改變當(dāng)前下載狀態(tài),比如取消、暫停、繼續(xù)等操作。在瀏覽器側(cè),當(dāng)某個(gè)子進(jìn)程的下載任務(wù)狀態(tài)改變吋,瀏覽器模塊501根據(jù)用戶的下載更新指令更新共享內(nèi)存中的數(shù)據(jù),包括改變控制標(biāo)志位的值以及寫入改變后的子進(jìn)程的標(biāo)識(shí)。后續(xù)任務(wù)下載模塊502的下載進(jìn)程將根據(jù)共享內(nèi)存中更新后的控制標(biāo)志位及下載狀態(tài)改變后的子進(jìn)程標(biāo)識(shí)控制相應(yīng)的子進(jìn)程的下載狀態(tài)。瀏覽器的下載網(wǎng)頁(yè)通過(guò)每隔一定時(shí)間調(diào)用downloadmanageLgetTaskList獲取下載任務(wù)的狀態(tài),該函數(shù)通過(guò)不斷讀取已經(jīng)下載文件的大小等信息并打包轉(zhuǎn)換成json數(shù)據(jù)格式,下載網(wǎng)頁(yè)解析該json包,獲取各子進(jìn)程的下載狀態(tài)。如果用戶按了暫停取消繼續(xù)等按鈕,瀏覽器的下載網(wǎng)頁(yè)則調(diào)用 libchdownloadmanager. so相應(yīng)的函數(shù)接ロ,將相應(yīng)的控制標(biāo)志位(比如2、3、4)和下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)(AppKey)寫入共享內(nèi)存。下載的子進(jìn)程不斷共享上述共享內(nèi)存的控制標(biāo)志位和AppKey,通過(guò)主線程不斷用來(lái)監(jiān)聽共享內(nèi)存,并控制下載狀態(tài)的改變。如果用戶需要改變某一子進(jìn)程下載任務(wù)的狀態(tài), 主線程通過(guò)讀取共享內(nèi)存的控制標(biāo)志位和AppKey,并把讀到的AppKey和自身的AppKey比較,如果兩者比較相同,即表明是自身下載任務(wù)的AppKey,說(shuō)明用戶要改變?cè)撓螺d任務(wù)的狀態(tài),主線程則調(diào)用相應(yīng)的函數(shù)來(lái)控制子線程的下載任務(wù)的狀態(tài),并對(duì)共享內(nèi)存進(jìn)行清0,否則返回繼續(xù)讀取共享內(nèi)存,以此類推。直到全部下載任務(wù)完成,子進(jìn)程全部退出,整個(gè)下載以兩個(gè)下載任務(wù)為例,對(duì)本實(shí)施例技術(shù)方案進(jìn)行詳細(xì)說(shuō)明當(dāng)下載進(jìn)程啟動(dòng)后,若父進(jìn)程監(jiān)測(cè)到共享內(nèi)存的控制標(biāo)志位為1,則進(jìn)ー步讀取共享內(nèi)存的下載信息(例如下載任務(wù)個(gè)數(shù)、下載地址、下載完后保存的路徑、AppKey等信息), 父進(jìn)程通過(guò)fork函數(shù)創(chuàng)建出兩個(gè)下載的子進(jìn)程,各子進(jìn)程通過(guò)pthreacLcreate函數(shù)創(chuàng)建真正的下載子線程,該下載子線程會(huì)調(diào)用Curldownload函數(shù)開始下載。在下載過(guò)程中,若用戶對(duì)其中一個(gè)子進(jìn)程選擇了改變下載狀態(tài)的按鍵(比如取消按鍵),各子進(jìn)程的主線程通過(guò)監(jiān)聽共享內(nèi)存中的控制標(biāo)志位獲知,共享內(nèi)存中的控制標(biāo)志位已經(jīng)更新為3,則從共享內(nèi)存中獲取下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí),判斷該下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)是否為自身子進(jìn)程的標(biāo)識(shí),若是,則表明用戶需要改變自身子進(jìn)程的下載狀態(tài), 該下載狀態(tài)改變的子進(jìn)程的主線程將對(duì)應(yīng)該控制標(biāo)志位3,控制子線程取消當(dāng)前子進(jìn)程的下載狀態(tài)。以此類推,直到所有的子進(jìn)程下載過(guò)程處理(包括下載、暫停取消等)完畢。本實(shí)施例基于電視機(jī)瀏覽器的javascript擴(kuò)展,使瀏覽器能夠多任務(wù)并發(fā)下載, 在任務(wù)下載的過(guò)程中,可以人為的控制某個(gè)正在下載狀態(tài),比如暫停、取消、繼續(xù)等動(dòng)作。 該方案把瀏覽器下載任務(wù)與瀏覽器獨(dú)立起來(lái),真正實(shí)現(xiàn)多任務(wù)下載,從而充分利用CPU資源,具有高效、人性化等特點(diǎn),使得用戶有良好體驗(yàn)性。具體地,如圖6所示,本實(shí)施例中瀏覽器模塊501包括加載單元5011、接收單元 5012以及寫入單元5013,其中加載單元5011,用于在瀏覽器啟動(dòng)時(shí),在瀏覽器中加載用于下載管理的動(dòng)態(tài)庫(kù);接收單元5012,用于通過(guò)瀏覽器的網(wǎng)頁(yè)接收用戶的下載指令;寫入?yún)g元5013,用于通過(guò)瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在共享內(nèi)存中寫入數(shù)據(jù),其中,所述共享內(nèi)存由所述瀏覽器和下載進(jìn)程共同創(chuàng)建。如圖7所示,任務(wù)下載模塊502包括父進(jìn)程單元5021以及子進(jìn)程單元5022,其中父進(jìn)程單元5021,用于啟動(dòng)下載進(jìn)程,并讀取共享內(nèi)存中的控制標(biāo)志位;當(dāng)控制標(biāo)志位為第一預(yù)定值時(shí),讀取共享內(nèi)存中的下載信息,井根據(jù)下載信息,創(chuàng)建至少兩個(gè)用于下載任務(wù)的子進(jìn)程;子進(jìn)程單元5022,用于通過(guò)子進(jìn)程進(jìn)行多任務(wù)下載。如圖8所示,子進(jìn)程單元5022包括創(chuàng)建單元50221、子線程單元50222以及主線程單元50223,其中創(chuàng)建單元50221,用于創(chuàng)建下載任務(wù)的子線程;子線程單元50222,用于在主線程單元50223的控制下執(zhí)行子線程對(duì)應(yīng)的下載任務(wù);主線程單元50223,用于控制子線程進(jìn)行相應(yīng)任務(wù)下載。進(jìn)ー步的,上述接收單元5012還用于在多任務(wù)下載過(guò)程中,通過(guò)瀏覽器的網(wǎng)頁(yè)接收用戶的下載更新指令;上述寫入?yún)g元5013還用于在多任務(wù)下載過(guò)程中,通過(guò)瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,更新共享內(nèi)存中的數(shù)據(jù)。上述主線程單元50223還用于在多任務(wù)下載過(guò)程中,監(jiān)聽共享內(nèi)存中的控制標(biāo)志位及子進(jìn)程標(biāo)識(shí);當(dāng)共享內(nèi)存中的控制標(biāo)志位為非第一預(yù)定值時(shí),獲取共享內(nèi)存中下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí);比較下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)與主線程當(dāng)前的子進(jìn)程標(biāo)識(shí);若兩者不一致,則不改變當(dāng)前子線程的下載進(jìn)程的狀態(tài);否則,根據(jù)共享內(nèi)存中的控制標(biāo)志位, 控制當(dāng)前子線程的下載任務(wù)的狀態(tài)。本發(fā)明實(shí)施例一種多任務(wù)下載的方法及終端,基于瀏覽器的javascript擴(kuò)展,將瀏覽器下載任務(wù)與瀏覽器獨(dú)立起來(lái),使瀏覽器能夠多任務(wù)并發(fā)下載,下載的過(guò)程中,可以人為控制某個(gè)正在下載狀態(tài),比如暫停、取消、繼續(xù)等動(dòng)作,提高CPU資源利用率及瀏覽器性能,同時(shí)具有高效、人性化等特點(diǎn),使得用戶具有良好體驗(yàn)效果。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種多任務(wù)下載的方法,其特征在干,包括 瀏覽器啟動(dòng),在瀏覽器中加載用于下載管理的動(dòng)態(tài)庫(kù);通過(guò)所述瀏覽器的網(wǎng)頁(yè)接收用戶的下載指令,并通過(guò)所述瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在共享內(nèi)存中寫入數(shù)據(jù);所述共享內(nèi)存由所述瀏覽器和下載進(jìn)程共同創(chuàng)建;啟動(dòng)所述下載進(jìn)程,從所述共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載。
2.根據(jù)權(quán)利要求1所述的方法,其特征在干,所述共享內(nèi)存中的數(shù)據(jù)包括控制標(biāo)志位以及下載信息;所述下載信息至少包括如下信息中的ー個(gè)下載任務(wù)個(gè)數(shù)、下載地址、下載完成后的保存路徑、子進(jìn)程標(biāo)識(shí)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在干,所述啟動(dòng)下載進(jìn)程,從所述共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載的步驟包括父進(jìn)程啟動(dòng)下載進(jìn)程,并讀取所述共享內(nèi)存中的控制標(biāo)志位; 當(dāng)所述控制標(biāo)志位為第一預(yù)定值吋,所述父進(jìn)程讀取所述共享內(nèi)存中的下載信息,并根據(jù)所述下載信息,創(chuàng)建至少兩個(gè)用于下載任務(wù)的子進(jìn)程; 通過(guò)所述子進(jìn)程進(jìn)行多任務(wù)下載。
4.根據(jù)權(quán)利要求3所述的方法,其特征在干,所述通過(guò)子進(jìn)程進(jìn)行多任務(wù)下載的步驟包括所述子進(jìn)程創(chuàng)建各自的下載子線程;并通過(guò)主線程控制所述子線程執(zhí)行相應(yīng)下載任務(wù)。
5.根據(jù)權(quán)利要求2-4中任一項(xiàng)所述的方法,其特征在于,還包括在多任務(wù)下載過(guò)程中,通過(guò)所述瀏覽器的網(wǎng)頁(yè)接收用戶的下載更新指令; 通過(guò)所述瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在所述共享內(nèi)存中更新所述控制標(biāo)志位的值并寫入下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在干,所述通過(guò)子進(jìn)程進(jìn)行多任務(wù)下載的步驟還包括所述子進(jìn)程的主線程監(jiān)聽所述共享內(nèi)存中的控制標(biāo)志位;當(dāng)所述共享內(nèi)存中的控制標(biāo)志位為非所述第一預(yù)定值時(shí),獲取所述共享內(nèi)存中下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí);比較所述下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)與所述主線程當(dāng)前的子進(jìn)程標(biāo)識(shí);若兩者不一致,則保持當(dāng)前子線程的下載進(jìn)程的狀態(tài);否則所述主線程根據(jù)所述共享內(nèi)存中的控制標(biāo)志位,控制當(dāng)前子線程的下載任務(wù)的狀態(tài)。
7.ー種多任務(wù)下載的終端,其特征在干,包括瀏覽器模塊及任務(wù)下載模塊,其中 所述瀏覽器模塊包括加載單元,用于在瀏覽器啟動(dòng)時(shí),在所述瀏覽器中加載用于下載管理的動(dòng)態(tài)庫(kù); 接收單元,用于通過(guò)所述瀏覽器的網(wǎng)頁(yè)接收用戶的下載指令;寫入?yún)g元,用于通過(guò)所述瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在共享內(nèi)存中寫入數(shù)據(jù);所述共享內(nèi)存由所述瀏覽器和下載進(jìn)程共同創(chuàng)建;所述任務(wù)下載模塊,用于啟動(dòng)所述下載進(jìn)程,從所述共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載。
8.根據(jù)權(quán)利要求7所述的終端,其特征在干,所述任務(wù)下載模塊包括父進(jìn)程單元,用于啟動(dòng)下載進(jìn)程,并讀取所述共享內(nèi)存中的控制標(biāo)志位;當(dāng)所述控制標(biāo)志位為第一預(yù)定值時(shí),讀取所述共享內(nèi)存中的下載信息,并根據(jù)所述下載信息,創(chuàng)建至少兩個(gè)用于下載任務(wù)的子進(jìn)程。子進(jìn)程單元,用于通過(guò)所述子進(jìn)程進(jìn)行多任務(wù)下載。
9.根據(jù)權(quán)利要求8所述的終端,其特征在干,所述子進(jìn)程単元包括創(chuàng)建單元,用于創(chuàng)建下載任務(wù)的子線程;子線程單元,用于執(zhí)行所述子線程對(duì)應(yīng)的下載任務(wù);主線程單元,用于控制所述子線程單元執(zhí)行相應(yīng)下載任務(wù)。
10.根據(jù)權(quán)利要求7、8或9所述的終端,其特征在干,所述接收単元,還用于在多任務(wù)下載過(guò)程中,通過(guò)所述瀏覽器的網(wǎng)頁(yè)接收用戶的下載更新指令;所述寫入?yún)g元,還用于通過(guò)所述瀏覽器的javascript擴(kuò)展接ロ調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接ロ,在所述共享內(nèi)存中更新控制標(biāo)志位的值并寫入下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)。
11.根據(jù)權(quán)利要求9所述的終端,其特征在干,所述主線程單元還用于監(jiān)聽所述共享內(nèi)存中的控制標(biāo)志位;當(dāng)所述共享內(nèi)存中的控制標(biāo)志位為非所述第一預(yù)定值時(shí),獲取所述共享內(nèi)存中下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí);比較所述下載狀態(tài)改變的子進(jìn)程標(biāo)識(shí)與所述主線程當(dāng)前的子進(jìn)程標(biāo)識(shí);若兩者不一致,則保持當(dāng)前子線程的下載進(jìn)程的狀態(tài);否則,根據(jù)所述共享內(nèi)存中的控制標(biāo)志位,控制當(dāng)前子線程的下載任務(wù)的狀態(tài)。
全文摘要
本發(fā)明公開一種多任務(wù)下載的方法及終端,其方法包括瀏覽器啟動(dòng),在瀏覽器中加載用于下載管理的動(dòng)態(tài)庫(kù);通過(guò)瀏覽器的網(wǎng)頁(yè)接收用戶的下載指令,并通過(guò)瀏覽器的javascript擴(kuò)展接口調(diào)用所述動(dòng)態(tài)庫(kù)的相應(yīng)函數(shù)接口,在共享內(nèi)存中寫入數(shù)據(jù);啟動(dòng)下載進(jìn)程,從共享內(nèi)存中讀取數(shù)據(jù),并根據(jù)讀取的數(shù)據(jù)進(jìn)行多任務(wù)下載。本發(fā)明基于瀏覽器的javascript擴(kuò)展,將瀏覽器下載任務(wù)與瀏覽器進(jìn)程分離,實(shí)現(xiàn)瀏覽器多任務(wù)并發(fā)下載,并在下載過(guò)程中,可人為控制某個(gè)正在下載狀態(tài),比如暫停、取消、繼續(xù)等,提高了CPU資源利用率及瀏覽器性能,同時(shí)具有高效、人性化等特點(diǎn),使得用戶具有良好體驗(yàn)。
文檔編號(hào)G06F9/46GK102567097SQ201110451390
公開日2012年7月11日 申請(qǐng)日期2011年12月29日 優(yōu)先權(quán)日2011年12月29日
發(fā)明者李余榮 申請(qǐng)人:Tcl王牌電器(惠州)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
织金县| 翼城县| 芒康县| 鹤壁市| 承德县| 汝南县| 弥渡县| SHOW| 婺源县| 普陀区| 昆明市| 汉寿县| 广平县| 肇庆市| 娱乐| 县级市| 惠州市| 鄂温| 兴安盟| 五大连池市| 宁夏| 普安县| 乐亭县| 聊城市| 六枝特区| 尖扎县| 武强县| 德格县| 莒南县| 集贤县| 孟村| 正镶白旗| 靖远县| 襄城县| 于田县| 湘潭市| 黄陵县| 三门峡市| 曲沃县| 屯门区| 潍坊市|