iOS中的异步和多线程概况
生活随笔
收集整理的這篇文章主要介紹了
iOS中的异步和多线程概况
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、異步(1)當(dāng)一個異步過程調(diào)用發(fā)出后,調(diào)用者不能立刻得到結(jié)果。實際處理這個調(diào)用的部件在完成后,通過狀態(tài)、通知和回調(diào)來通知調(diào)用者。比如iOS類庫中的NSURLConnectioin中使用代理的方式就是異步。(2)iOS類庫中的異步調(diào)用提供自動的多線程并發(fā),它們使用系統(tǒng)守護(hù)進(jìn)程或者創(chuàng)建自定義的線程來執(zhí)行任務(wù)并且返回結(jié)果給調(diào)用者(來自蘋果文檔)。(3)系統(tǒng)自動根據(jù)當(dāng)前運行環(huán)境來安排和執(zhí)行異步請求,對于并發(fā)的數(shù)量有限制。拿NSURLConnectioin異步請求來說,假如在很短很短的時間內(nèi),連續(xù)發(fā)出了100個異步網(wǎng)絡(luò)請求,這100個異步請求不會都發(fā)出,我測試的結(jié)果顯示,同時最多可以有5個請求并發(fā)執(zhí)行,其余的請求會排隊。所以不用害怕如果用異步請求的方式同時發(fā)出很多請求會使應(yīng)用變慢。(4)一般在進(jìn)行IO操作時使用異步操作。
二、多線程1.多線程可以增加程序運行效率,可以在主線程之外創(chuàng)建另外的線程來執(zhí)行其它的動作,而不阻塞主線程。多線程應(yīng)該合理的使用,不能濫用,使用過多會使系統(tǒng)和程序的運行效率降低,代碼的復(fù)雜度也會增加。2.當(dāng)進(jìn)行執(zhí)行時間很長的計算、圖形處理、圖形渲染等費時操作時,使用多線程。2.iOS類庫中的線程類:NSThread。3.iOS中線程的替代方案:NSOperationQueue,GCD,NSNotificationQueue(異步通知),異步方法,NSTimer。詳細(xì)內(nèi)容另外章節(jié)介紹。
二、多線程1.多線程可以增加程序運行效率,可以在主線程之外創(chuàng)建另外的線程來執(zhí)行其它的動作,而不阻塞主線程。多線程應(yīng)該合理的使用,不能濫用,使用過多會使系統(tǒng)和程序的運行效率降低,代碼的復(fù)雜度也會增加。2.當(dāng)進(jìn)行執(zhí)行時間很長的計算、圖形處理、圖形渲染等費時操作時,使用多線程。2.iOS類庫中的線程類:NSThread。3.iOS中線程的替代方案:NSOperationQueue,GCD,NSNotificationQueue(異步通知),異步方法,NSTimer。詳細(xì)內(nèi)容另外章節(jié)介紹。
總結(jié)
以上是生活随笔為你收集整理的iOS中的异步和多线程概况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CoreData简介
- 下一篇: Git仓库迁移,包括所有的分支、标签、日