[發(fā)明專利]在構(gòu)件編程中自動(dòng)生成Singleton模式的方法無(wú)效
| 申請(qǐng)?zhí)枺?/td> | 200610147859.0 | 申請(qǐng)日: | 2006-12-25 |
| 公開(公告)號(hào): | CN101211273A | 公開(公告)日: | 2008-07-02 |
| 發(fā)明(設(shè)計(jì))人: | 陳榕;梁宇洲;楊洋 | 申請(qǐng)(專利權(quán))人: | 上??铺┦兰o(jì)科技有限公司 |
| 主分類號(hào): | G06F9/46 | 分類號(hào): | G06F9/46 |
| 代理公司: | 上海浦一知識(shí)產(chǎn)權(quán)代理有限公司 | 代理人: | 顧繼光 |
| 地址: | 201203上海市浦*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 構(gòu)件 編程 自動(dòng) 生成 singleton 模式 方法 | ||
1.一種在構(gòu)件編程中自動(dòng)生成Singleton模式的方法,其特征是,包括以下步驟:
步驟一,定義一個(gè)全局對(duì)象變量,并定義一個(gè)全局狀態(tài)值,同時(shí)定義一個(gè)全局鎖;
步驟二,對(duì)全局狀態(tài)值加鎖;
步驟三,對(duì)全局狀態(tài)值進(jìn)行檢測(cè)判斷,當(dāng)全局狀態(tài)值為未初始化時(shí),對(duì)對(duì)象進(jìn)行初始化工作,并相應(yīng)地設(shè)置全局狀態(tài)值為正在初始化;當(dāng)全局狀態(tài)值為正在初始化時(shí),表明已經(jīng)有其他的線程進(jìn)行對(duì)象的初始化工作,此時(shí)該線程將會(huì)進(jìn)入等待狀態(tài),并且通過(guò)全局狀態(tài)值不斷檢測(cè)正在分配對(duì)象的線程的狀況;當(dāng)全局狀態(tài)值為已初始化時(shí),獲得全局對(duì)象變量的值;
步驟四,全局狀態(tài)值解鎖并返回對(duì)象的值。
2.根據(jù)權(quán)利要求1所述的在構(gòu)件編程中自動(dòng)生成Singleton模式的方法,其特征是,當(dāng)全局狀態(tài)值為未初始化時(shí),按照如下步驟完成所述的對(duì)對(duì)象的狀態(tài)值進(jìn)行設(shè)置:
步驟1,將全局狀態(tài)值設(shè)置為正在初始化;
步驟2,對(duì)狀態(tài)值解鎖;
步驟3,在堆中分配新的構(gòu)件對(duì)象,并將其引用計(jì)數(shù)加1;
步驟4,判斷分配是否成功,當(dāng)分配不成功時(shí),將全局狀態(tài)值設(shè)為未初始化并返回;當(dāng)分配成功時(shí),調(diào)用對(duì)象的初始化元件方法進(jìn)行設(shè)置并執(zhí)行下述步驟5;
步驟5,判斷設(shè)置是否成功,當(dāng)設(shè)置成功時(shí),將對(duì)象的狀態(tài)值設(shè)為已初始化并返回;當(dāng)設(shè)置不成功時(shí),將所述全局狀態(tài)值設(shè)為未初始化并返回。
3.根據(jù)權(quán)利要求1所述的在構(gòu)件編程中自動(dòng)生成Singleton模式的方法,其特征是,當(dāng)所述全局狀態(tài)值為正在初始化時(shí),按如下步驟完成所述的檢測(cè)其他線程分配對(duì)象的狀況:
步驟A,對(duì)全局狀態(tài)值解鎖;
步驟B,切換到其他線程;
步驟C,對(duì)全局狀態(tài)值加鎖;
步驟D,判斷其他線程是否分配對(duì)象失敗,當(dāng)其他線程分配對(duì)象失敗時(shí),全局狀態(tài)值解鎖并返回所述步驟二重新執(zhí)行對(duì)象初始化工作;當(dāng)其他線程分配對(duì)象成功時(shí),執(zhí)行下述步驟E;
步驟E,判斷其他線程是否已經(jīng)完成對(duì)象的分配,當(dāng)其他線程未完成對(duì)象的分配時(shí),跳回步驟A;當(dāng)其他線程已完成對(duì)象的分配時(shí),按所述步驟三獲得全局對(duì)象變量的值。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上??铺┦兰o(jì)科技有限公司,未經(jīng)上??铺┦兰o(jì)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200610147859.0/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。





