NSObject的多線程方法
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),臨朐企業(yè)網(wǎng)站建設(shè),臨朐品牌網(wǎng)站建設(shè),網(wǎng)站定制,臨朐網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,臨朐網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。NSObject提供了一些多線程的方法,這些方法使用簡(jiǎn)單而且量級(jí)輕,但無(wú)法對(duì)線程進(jìn)行必要的控制,所以并不推薦使用。
開啟后臺(tái)執(zhí)行任務(wù)的方法
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
在后臺(tái)線程中通知主線程執(zhí)行任務(wù)的方法
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
多線程中的資源競(jìng)爭(zhēng)
并發(fā)編程中許多問題的根源就是在多線程中訪問共享資源,資源可以是一個(gè)屬性、一個(gè)對(duì)象、網(wǎng)絡(luò)設(shè)備或者一個(gè)文件等
在多線程中共享的資源被稱作臨界資源,訪問了臨界資源的那一部分代碼被稱作臨界區(qū)
有臨界區(qū)出現(xiàn),就可能是一個(gè)潛在的沖突點(diǎn),需要程序員精心去設(shè)計(jì)防止?jié)撛诘臎_突發(fā)生。
在多線程開發(fā)中,如果訪問了臨界資源(共享資源),由于線程運(yùn)行切換的時(shí)機(jī)問題可能會(huì)導(dǎo)致得到的結(jié)果是錯(cuò)誤的。
在爭(zhēng)奪臨界資源時(shí),可以使用互斥鎖將臨界區(qū)鎖住,方法是使用@synchronized。
還有一種保護(hù)屬性setter方法的原子操作是,在@property中制定atomic關(guān)鍵字,即在使用setter方法時(shí),將其鎖住。
在iOS開發(fā)中,不建議使用@synchronized和atomic(代價(jià)非常大),也就是說(shuō)盡量不要去搶奪資源
正是出于性能的考慮,UIKit框架的絕大部分類都不是線程安全的,所以蘋果才要求更新UI的操作一定要放到主線程去做
RunLoop機(jī)制
提供了一種異步執(zhí)行代碼的機(jī)制,不能并發(fā)執(zhí)行任務(wù)
在主隊(duì)列中,MainRunLoop直接配合任務(wù)的執(zhí)行,負(fù)責(zé)處理UI事件、計(jì)數(shù)器、以及其他內(nèi)核相關(guān)事件。
RunLoop的主要目的是保證線程不會(huì)被系統(tǒng)終止
工作特點(diǎn):
當(dāng)有事件發(fā)生時(shí),Run Loop會(huì)根據(jù)具體的事件類型通知應(yīng)用程序做出響應(yīng)
當(dāng)沒有事件發(fā)生時(shí),Run Loop會(huì)進(jìn)入休眠狀態(tài),從而達(dá)到省電的目的
當(dāng)事件再次發(fā)生時(shí),Run Loop會(huì)被重新喚醒,處理事件
iOS程序主線程設(shè)置了RunLoop,其他線程沒有設(shè)置
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
文章題目:iOS多線程開發(fā)之NSObject的多線程方法-創(chuàng)新互聯(lián)
文章URL:http://www.rwnh.cn/article32/cepopc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、外貿(mào)建站、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、網(wǎng)站策劃、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容