一種任務(wù)執(zhí)行方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別是涉及一種任務(wù)執(zhí)行方法和裝置。
【背景技術(shù)】
[0002]在網(wǎng)絡(luò)通信領(lǐng)域,客戶端經(jīng)常存在向服務(wù)器發(fā)送多條數(shù)據(jù)的需求。
[0003]現(xiàn)有客戶端向服務(wù)器發(fā)送多條數(shù)據(jù)的過(guò)程具體可以包括:首先向服務(wù)器發(fā)送一條數(shù)據(jù),在接收到服務(wù)器返回的響應(yīng)信息后,再向服務(wù)器發(fā)送下一條數(shù)據(jù)。然而,受網(wǎng)絡(luò)延遲、網(wǎng)絡(luò)堵塞等因素的影響,從向服務(wù)器發(fā)送一條數(shù)據(jù),到服務(wù)器返回響應(yīng)信息,需要經(jīng)歷較長(zhǎng)的時(shí)間,在該時(shí)間內(nèi)客戶端需要等待,這無(wú)疑影響了數(shù)據(jù)傳輸?shù)男省?br>
【發(fā)明內(nèi)容】
[0004]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的一種任務(wù)執(zhí)行方法和裝置。
[0005]依據(jù)本發(fā)明的一個(gè)方面,提供了一種任務(wù)執(zhí)行方法,包括:
[0006]將任務(wù)分解為多個(gè)子任務(wù);
[0007]將所述多個(gè)子任務(wù)及其對(duì)應(yīng)任務(wù)信息寫(xiě)入緩沖區(qū);以及
[0008]利用多線程依據(jù)所述子任務(wù)對(duì)應(yīng)任務(wù)信息執(zhí)行所述緩沖區(qū)中子任務(wù)。
[0009]可選地,所述利用多線程依據(jù)所述子任務(wù)對(duì)應(yīng)數(shù)據(jù)執(zhí)行所述緩沖區(qū)中子任務(wù)的步驟,包括:
[0010]各線程在處于空閑狀態(tài)時(shí),掃描所述緩沖區(qū);以及
[0011]在掃描到新的子任務(wù)時(shí),從所述緩沖區(qū)中讀取并執(zhí)行所述新的子任務(wù)。
[0012]可選地,所述任務(wù)信息包括:任務(wù)標(biāo)識(shí);
[0013]則所述利用多線程依據(jù)所述子任務(wù)對(duì)應(yīng)數(shù)據(jù)執(zhí)行所述緩沖區(qū)中子任務(wù)的步驟,包括:
[0014]各線程掃描所述緩沖區(qū);
[0015]在掃描到新的子任務(wù)時(shí),各線程判斷所述新的子任務(wù)的任務(wù)標(biāo)識(shí)與自身是否匹配;以及
[0016]在所述新的子任務(wù)的任務(wù)標(biāo)識(shí)與自身的線程標(biāo)識(shí)匹配時(shí),從所述緩沖區(qū)中讀取并執(zhí)行所述新的子任務(wù)。
[0017]可選地,所述任務(wù)信息包括:任務(wù)標(biāo)識(shí);
[0018]則所述將所述多個(gè)子任務(wù)及其對(duì)應(yīng)任務(wù)信息寫(xiě)入緩沖區(qū)的步驟,包括:
[0019]將每個(gè)子任務(wù)寫(xiě)入與其對(duì)應(yīng)任務(wù)標(biāo)識(shí)相匹配的線程對(duì)應(yīng)子緩沖區(qū);
[0020]則所述利用多線程依據(jù)所述子任務(wù)對(duì)應(yīng)數(shù)據(jù)執(zhí)行所述緩沖區(qū)中子任務(wù)的步驟,包括:
[0021]各線程從對(duì)應(yīng)子緩沖區(qū)中讀取子任務(wù)及其對(duì)應(yīng)任務(wù)信息,并依據(jù)所述子任務(wù)對(duì)應(yīng)數(shù)據(jù)執(zhí)行所述子任務(wù)。
[0022]可選地,所述子任務(wù)的任務(wù)標(biāo)識(shí)與所述線程匹配包括:所述子任務(wù)的任務(wù)標(biāo)識(shí)對(duì)于多線程數(shù)目的取模結(jié)果等于所述線程的線程標(biāo)識(shí)。
[0023]根據(jù)本發(fā)明的另一方面,提供了一種任務(wù)執(zhí)行裝置,包括:
[0024]分解模塊,用于將任務(wù)分解為多個(gè)子任務(wù);
[0025]寫(xiě)入模塊,用于將所述多個(gè)子任務(wù)及其對(duì)應(yīng)任務(wù)信息寫(xiě)入緩沖區(qū);以及
[0026]執(zhí)行模塊,用于利用多線程依據(jù)所述子任務(wù)對(duì)應(yīng)任務(wù)信息執(zhí)行所述緩沖區(qū)中子任務(wù)。
[0027]可選地,所述執(zhí)行模塊,包括:
[0028]第一掃描子模塊,用于在各線程處于空閑狀態(tài)時(shí),掃描所述緩沖區(qū);以及
[0029]第一讀取子模塊,用于在掃描到新的子任務(wù)時(shí),從所述緩沖區(qū)中讀取并執(zhí)行所述新的子任務(wù)。
[0030]可選地,所述任務(wù)信息包括:任務(wù)標(biāo)識(shí);
[0031]則所述執(zhí)行模塊,包括:
[0032]第二掃描子模塊,用于針對(duì)各線程掃描所述緩沖區(qū);
[0033]判斷子模塊,用于在掃描到新的子任務(wù)時(shí),針對(duì)各線程判斷所述新的子任務(wù)的任務(wù)標(biāo)識(shí)與自身是否匹配;以及
[0034]第二讀取子模塊,用于在所述新的子任務(wù)的任務(wù)標(biāo)識(shí)與自身的線程標(biāo)識(shí)匹配時(shí),從所述緩沖區(qū)中讀取并執(zhí)行所述新的子任務(wù)。
[0035]可選地,所述任務(wù)信息包括:任務(wù)標(biāo)識(shí);
[0036]則所述寫(xiě)入模塊,具體用于將每個(gè)子任務(wù)寫(xiě)入與其對(duì)應(yīng)任務(wù)標(biāo)識(shí)相匹配的線程對(duì)應(yīng)子緩沖區(qū);
[0037]則所述執(zhí)行模塊,包括:
[0038]第三讀取子模塊,用于針對(duì)各線程從對(duì)應(yīng)子緩沖區(qū)中讀取子任務(wù)及其對(duì)應(yīng)任務(wù)信息,并依據(jù)所述子任務(wù)對(duì)應(yīng)數(shù)據(jù)執(zhí)行所述子任務(wù)。
[0039]可選地,所述子任務(wù)的任務(wù)標(biāo)識(shí)與所述線程匹配包括:所述子任務(wù)的任務(wù)標(biāo)識(shí)對(duì)于多線程數(shù)目的取模結(jié)果等于所述線程的線程標(biāo)識(shí)。
[0040]根據(jù)本發(fā)明實(shí)施例的一種任務(wù)執(zhí)行方法和裝置,可以將負(fù)擔(dān)較多同步操作的長(zhǎng)任務(wù)分解為多個(gè)子任務(wù),將所述多個(gè)子任務(wù)及其對(duì)應(yīng)任務(wù)信息寫(xiě)入緩沖區(qū),并利用多線程依據(jù)所述子任務(wù)對(duì)應(yīng)任務(wù)信息執(zhí)行所述緩沖區(qū)中子任務(wù);因此,相對(duì)于現(xiàn)有方案執(zhí)行一個(gè)同步操作并在等待結(jié)果返回后繼續(xù)執(zhí)行下一個(gè)同步操作,本發(fā)明實(shí)施例的多線程可以并行執(zhí)行子任務(wù)對(duì)應(yīng)的操作,因此,能夠大大提升執(zhí)行任務(wù)執(zhí)行的效率。
[0041]并且,相對(duì)于現(xiàn)有方案在執(zhí)行完一個(gè)同步操作后等待結(jié)果返回的操作,本發(fā)明實(shí)施例的單個(gè)線程在執(zhí)行完一個(gè)同步操作后,無(wú)需等待即可繼續(xù)執(zhí)行下一個(gè)同步操作,等待結(jié)果返回的操作可由所述緩沖區(qū)的后臺(tái)來(lái)執(zhí)行,因此,節(jié)省等待結(jié)果返回的操作所花費(fèi)的時(shí)間,從而能夠進(jìn)一步提尚任務(wù)執(zhí)彳丁的效率
[0042]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說(shuō)明】
[0043]通過(guò)閱讀下文可選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出可選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0044]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種任務(wù)執(zhí)行方法的步驟流程示意圖;
[0045]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種緩沖區(qū)的結(jié)構(gòu)示意圖;
[0046]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種任務(wù)執(zhí)行方法的步驟流程示意圖;
[0047]圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種任務(wù)執(zhí)行方法的步驟流程示意圖;
[0048]圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種任務(wù)執(zhí)行方法的步驟流程示意圖;以及
[0049]圖6示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種任務(wù)執(zhí)行裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0050]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0051 ] 參照?qǐng)D1,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種任務(wù)執(zhí)行方法的步驟流程示意圖,具體可以包括如下步驟:
[0052]步驟101、將任務(wù)分解為多個(gè)子任務(wù);
[0053]步驟102、將所述多個(gè)子任務(wù)及其對(duì)應(yīng)任務(wù)信息寫(xiě)入緩沖區(qū);以及
[0054]步驟103、利用多線程依據(jù)所述子任務(wù)對(duì)應(yīng)任務(wù)信息執(zhí)行所述緩沖區(qū)中子任務(wù)。
[0055]本發(fā)明實(shí)施例中,任務(wù)可以為負(fù)擔(dān)較多同步操作的長(zhǎng)任務(wù),可以根據(jù)長(zhǎng)任務(wù)的實(shí)際情況將其分解為多個(gè)子任務(wù),例如將長(zhǎng)任務(wù)中的一個(gè)同步操作對(duì)應(yīng)一個(gè)子任務(wù)等等,本發(fā)明對(duì)將任務(wù)分解為多個(gè)子任務(wù)的具體方法不加以限制。任務(wù)信息可以包括任務(wù)標(biāo)識(shí)、任務(wù)數(shù)據(jù)等信息,本發(fā)明實(shí)施例對(duì)具體的任務(wù)信息不加以限制。
[0056]本發(fā)明實(shí)施例中,緩沖區(qū)可用于存儲(chǔ)多個(gè)子任務(wù)及其對(duì)應(yīng)任務(wù)信息。參照?qǐng)D2,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種緩沖區(qū)的結(jié)構(gòu)示意圖,其具體可以包括寫(xiě)指針和讀指針,其中,寫(xiě)指針可用于將所述子任務(wù)1、子任務(wù)2、子任務(wù)3等多個(gè)子任務(wù)及其對(duì)應(yīng)任務(wù)信息寫(xiě)入緩沖區(qū),讀指針可用于從所述緩沖區(qū)讀取子任務(wù)及其對(duì)應(yīng)任務(wù)信息,在實(shí)際應(yīng)用中,各線程可以通過(guò)所述讀指針來(lái)實(shí)現(xiàn)子任務(wù)及其對(duì)應(yīng)任務(wù)信息的讀取,并依據(jù)所述子任務(wù)對(duì)應(yīng)任務(wù)信息執(zhí)行所讀取的子任務(wù)。
[0057]以客戶端向服務(wù)器發(fā)送多條數(shù)據(jù)的任務(wù)為例,可以將該任務(wù)分解為多個(gè)子任務(wù),其中的一個(gè)子任務(wù)用于發(fā)送一條數(shù)據(jù),那么,可以利用多線程來(lái)發(fā)送上述多條數(shù)據(jù),假設(shè)多線程數(shù)目為N,則N個(gè)線程可以并行向服務(wù)器發(fā)送多條數(shù)據(jù),因此,相對(duì)于現(xiàn)有方案中一次向服務(wù)器發(fā)送一條數(shù)據(jù),能夠大大提高數(shù)據(jù)傳輸?shù)男省2⑶?,相?duì)于現(xiàn)有方案在從向服務(wù)器發(fā)送一條數(shù)據(jù)到服務(wù)器返回響應(yīng)信息這段時(shí)間內(nèi)等待,本發(fā)明實(shí)施例的單個(gè)線程在向服務(wù)器發(fā)送一條數(shù)據(jù)后,無(wú)需等待即可繼續(xù)向服務(wù)器發(fā)送下一條數(shù)據(jù),從服務(wù)器接收響應(yīng)信息的操作可由所述緩沖區(qū)的后臺(tái)來(lái)執(zhí)行,因此,能夠進(jìn)一步提高數(shù)據(jù)傳輸?shù)男省?br>[0058]上述客戶端向服務(wù)器發(fā)送多條數(shù)據(jù)的任務(wù)涉及相同的向服務(wù)器發(fā)送一條數(shù)據(jù)的同步操作??梢岳斫猓景l(fā)明實(shí)施例的任務(wù)還可以涉及不同的同步操作,如用戶A從早晨起床到出門(mén)前要完成如下任務(wù):疊被子用3分鐘、刷牙和洗臉4分鐘、做飯10分鐘、吃早飯8分鐘、整理書(shū)包2分鐘等等,因此可以將上述任務(wù)分解為疊被子、刷牙、洗臉、做飯、吃早飯和整理書(shū)包等不同的同步操作,并利用多線程來(lái)并行執(zhí)行所述不同的同步操作,從而提高任務(wù)執(zhí)行效率。
[0059]綜上,本發(fā)明實(shí)施例將負(fù)擔(dān)較多同步操作的長(zhǎng)任務(wù)分解為多個(gè)子任務(wù),將所述多個(gè)子任務(wù)及其對(duì)應(yīng)任務(wù)信息寫(xiě)入緩沖區(qū),并利用多線程依據(jù)所述子任務(wù)對(duì)應(yīng)任務(wù)信息執(zhí)行所述緩沖區(qū)中子任務(wù);相對(duì)于現(xiàn)有方案執(zhí)行一個(gè)同步操作并在等待結(jié)果返回后繼續(xù)執(zhí)行下一個(gè)同步操作,本發(fā)明實(shí)施例