一、runloop 簡(jiǎn)介 RunLoop是通過(guò)內(nèi)部維護(hù)的 事件循環(huán)(Event Loop) 來(lái)對(duì) 事件/消息 進(jìn)行管理的一個(gè)對(duì)象。 沒有消息處理...
一、NSTimer 使用 1.1 使用問(wèn)題 對(duì)于上面使用timerWithTimeInterval方式創(chuàng)建的timer需要主動(dòng)調(diào)用NSRunLo...
一、自動(dòng)釋放池簡(jiǎn)介 對(duì)于autoreleasepool是怎么實(shí)現(xiàn)的呢?直接xcrun查看下對(duì)應(yīng)的c++實(shí)現(xiàn): 可以看到@autoreleasep...
ARC是LLVM和Runtime配合的結(jié)果。 ARC中禁止手動(dòng)調(diào)用retain/release/retainCount/dealloc ARC新...
一、內(nèi)存布局 1.1 內(nèi)存分區(qū) 棧區(qū):存儲(chǔ)函數(shù)、方法、指針、局部變量、參數(shù)等(訪問(wèn)速度快,通過(guò)寄存器訪問(wèn)),當(dāng)局部變量的作用域被執(zhí)行完畢之后,這...
一、block 簡(jiǎn)介 1.1 block 分類 NSGlobalBlock:位于全局區(qū)。在 Block內(nèi)部不使用外部變量,或者只使用靜態(tài)變量和全...
一、鎖的分類 在分析其它鎖之前,需要先區(qū)分清楚鎖的區(qū)別,基本的鎖包括了二類:互斥鎖 和 自旋鎖。 1.1 自旋鎖 自旋鎖:線程反復(fù)檢查鎖變量是否...
一、性能分析 網(wǎng)上很多對(duì)比八大鎖性能的文章,時(shí)間大部分比較早。蘋果對(duì)某些鎖內(nèi)部進(jìn)行了優(yōu)化。這篇文章找中會(huì)以10萬(wàn)次數(shù)據(jù)做對(duì)比對(duì)主流鎖性能進(jìn)行分析...
一、柵欄函數(shù) CPU的亂序執(zhí)行能力讓我們對(duì)多線程的安全保障的努力變得異常困難。因此要保證線程安全,阻止CPU換序是必需的。遺憾的是,現(xiàn)在并不存在...