專利名稱:一種異步初始化對象的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種異步初始化對象的方法,特別涉及一種采用在加載資源的 時候,如果比較耗時,則使用異步方式來提高效率的方法。
背景技術(shù):
我們通過使用對象來封裝資源,如果該資源的加載過程比較耗時,我們可以
采取這樣的方案在程序剛開始進行的時候便開始異步初始化,然后程序可以再 繼續(xù)其它的工作。
這樣當(dāng)我們要用到該資源的時候,它有可能已經(jīng)初始化完畢,我們就可以 直接使用,用戶感覺不到停頓的過程;如果還未初始化,則在此等待,這樣則 減少了等待的時候,有效地改善了用戶體驗。
如何便利地執(zhí)行上面的步驟,成為該項技術(shù)的要點。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種采用在加載資源的時候,如果比較 耗時,則使用異步方式來提高效率的方法。
本發(fā)明所述的一種異步初始化對象的方法,該方法至少包括如下的步驟 步驟l:建立對象初始化器,它需要實現(xiàn)以下功能。 步驟2:外部程序在開始運行的時候創(chuàng)建需要異步初始化的對象。 步驟3:對象啟用初始化器,并將如何初始化自身的方法告知初始化器。 步驟4:初始化器開始異步執(zhí)行指定的方法,以初始化該對象。 步驟5:外部程序繼續(xù)執(zhí)行其它的操作。 步驟6:外部程序需要用到該對象,向?qū)ο蟀l(fā)起請求。
4步驟7:對象將請求傳遞給初始化器。
步驟8:初始化器檢查是否初始化完畢,如果尚未初始化完畢,則阻塞外部 程序的執(zhí)行,繼續(xù)進行初始化。
步驟9:初始化器執(zhí)行完畢,并通知對象。 步驟10:對象執(zhí)行調(diào)用者(外部程序)的請求。
步驟ll:外部程序在以后的調(diào)用中,將可以以正常的方式來使用該對象。
本發(fā)明所述的一種異步初始化對象的方法,建立對象初始化器,它需要實 現(xiàn)以下功能其步驟為
步驟11:需要異步加載的對象,內(nèi)部都有這樣一個初始化器,它在對象創(chuàng) 建的起初便使用初始化器來初始化自身。
步驟12:對象需要告知初始化器如何初始化自己。
步驟13:當(dāng)外部程序要使用對象的時候,對象會先詢問初始化器是否已經(jīng) 初始化完畢。
步驟14:如何對象沒有初始化完畢,則初始化器將阻塞調(diào)用者,并繼續(xù)進 4亍:f刀i會^ft。
步驟15:初始化器在初始化時如果遇到錯誤,則將錯誤通知對象,外部程 序在使用對象的時候,對象會把該錯誤告知外部程序,則外部程序來處理。
本發(fā)明涉及的一種異步初始化對象的方法,使得在加載資源的時候,如果比 較耗時,則使用異步方式來提高效率。
圖1為本發(fā)明的流程圖。
具體實施例方式
參見圖l,本發(fā)明的主要步驟如下步驟l:建立對象初始化器,它需要實現(xiàn)以下功能。
步驟2:外部程序在開始運行的時候創(chuàng)建需要異步初始化的對象。
步驟3:對象啟用初始化器,并將如何初始化自身的方法告知初始化器。
步驟4:初始化器開始異步執(zhí)行指定的方法,以初始化該對象。
步驟5:外部程序繼續(xù)執(zhí)行其它的操作。
步驟6:外部程序需要用到該對象,向?qū)ο蟀l(fā)起請求。
步驟7:對象將請求傳遞給初始化器。
步驟8:初始化器檢查是否初始化完畢,如果尚未初始化完畢,則阻塞外部 程序的執(zhí)行,繼續(xù)進行初始化。
步驟9:初始化器執(zhí)行完畢,并通知對象。 步驟10:對象執(zhí)行調(diào)用者(外部程序)的請求。
步驟ll:外部程序在以后的調(diào)用中,將可以以正常的方式來使用該對象。 上述步驟1建立對象初始化器,它需要實現(xiàn)以下功能的具體步驟如下 步驟11:需要異步加載的對象,內(nèi)部都有這樣一個初始化器,它在對象創(chuàng) 建的起初便使用初始化器來初始化自身。
步驟12:對象需要告知初始化器如何初始化自己。
步驟13:當(dāng)外部程序要使用對象的時候,對象會先詢問初始化器是否已經(jīng) 初始化完畢。
步驟14:如何對象沒有初始化完畢,則初始化器將阻塞調(diào)用者,并繼續(xù)進 4亍初始4匕。
步驟15:初始化器在初始化時如果遇到錯誤,則將錯誤通知對象,外部程 序在使用對象的時候,對象會把該錯誤告知外部程序,則外部程序來處理。
上述的技術(shù)方案實施時在加載資源的時候,如果比較耗時,則使用異步方
6式來提高效率。
最后所應(yīng)說明的是,以上實施例僅用以說明而并非限制本發(fā)明所描述的技
術(shù)方案;因此,盡管本說明書參照上述的實施例對本發(fā)明已進行了詳細的說明, 但是,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,仍然可以對本發(fā)明進行修改或者等同 地替換;而一切不脫離本發(fā)明的精神和范圍的技術(shù)方案及其改進,其均應(yīng)涵蓋 在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1、一種異步初始化對象的方法,其特征在于該方法至少包括如下的步驟步驟1建立對象初始化器,它需要實現(xiàn)以下功能。步驟2外部程序在開始運行的時候創(chuàng)建需要異步初始化的對象。步驟3對象啟用初始化器,并將如何初始化自身的方法告知初始化器。步驟4初始化器開始異步執(zhí)行指定的方法,以初始化該對象。步驟5外部程序繼續(xù)執(zhí)行其它的操作。步驟6外部程序需要用到該對象,向?qū)ο蟀l(fā)起請求。步驟7對象將請求傳遞給初始化器。步驟8初始化器檢查是否初始化完畢,如果尚未初始化完畢,則阻塞外部程序的執(zhí)行,繼續(xù)進行初始化。步驟9初始化器執(zhí)行完畢,并通知對象。步驟10對象執(zhí)行調(diào)用者外部程序的請求。步驟11外部程序在以后的調(diào)用中,將可以以正常的方式來使用該對象。
2、 根據(jù)權(quán)利要求1所述的一種異步初始化對象的方法,其特征在于建立 對象初始化器,它需要實現(xiàn)以下功能,其步驟為步驟11:需要異步加載的對象,內(nèi)部都有這樣一個初始化器,它在對象創(chuàng) 建的起初便使用初始化器來初始化自身。步驟12:對象需要告知初始化器如何初始化自己。步驟13:當(dāng)外部程序要使用對象的時候,對象會先詢問初始化器是否已經(jīng) 初始化完畢。步驟14:如何對象沒有初始化完畢,則初始化器將阻塞調(diào)用者,并繼續(xù)進 4于^;士會4b。步驟15:初始化器在初始化時如果遇到錯誤,則將錯誤通知對象,外部程序在使用對象的時候,對象會把該錯誤告知外部程序,則外部程序來處理。
全文摘要
一種異步初始化對象的方法,首先建立對象初始化器;對象啟用初始化器,并將如何初始化自身的方法告知初始化器;初始化器開始異步執(zhí)行指定的方法,以初始化該對象;外部程序繼續(xù)執(zhí)行其它的操作;外部程序需要用到該對象,向?qū)ο蟀l(fā)起請求;對象將請求傳遞給初始化器;初始化器檢查是否初始化完畢,如果尚未初始化完畢,則阻塞外部程序的執(zhí)行,繼續(xù)進行初始化;初始化器執(zhí)行完畢,并通知對象;對象執(zhí)行調(diào)用者外部程序的請求;最后外部程序在以后的調(diào)用中,將可以以正常的方式來使用該對象。本發(fā)明使得在加載資源的時候,如果比較耗時,則使用異步方式來提高效率。
文檔編號H04L29/06GK101567874SQ20081010513
公開日2009年10月28日 申請日期2008年4月25日 優(yōu)先權(quán)日2008年4月25日
發(fā)明者瑩 劉, 徐友春, 朱紅軍, 湯海京, 峰 趙 申請人:北京聞言科技有限公司