一、runloop 简介 RunLoop是通过内部维护的 事件循环(Event Loop) 来对 事件/消息 进行管理的一个对象。 没有消息处理...
一、NSTimer 使用 1.1 使用问题 对于上面使用timerWithTimeInterval方式创建的timer需要主动调用NSRunLo...
一、自动释放池简介 对于autoreleasepool是怎么实现的呢?直接xcrun查看下对应的c++实现: 可以看到@autoreleasep...
ARC是LLVM和Runtime配合的结果。 ARC中禁止手动调用retain/release/retainCount/dealloc ARC新...
一、内存布局 1.1 内存分区 栈区:存储函数、方法、指针、局部变量、参数等(访问速度快,通过寄存器访问),当局部变量的作用域被执行完毕之后,这...
一、block 简介 1.1 block 分类 NSGlobalBlock:位于全局区。在 Block内部不使用外部变量,或者只使用静态变量和全...
一、锁的分类 在分析其它锁之前,需要先区分清楚锁的区别,基本的锁包括了二类:互斥锁 和 自旋锁。 1.1 自旋锁 自旋锁:线程反复检查锁变量是否...
一、性能分析 网上很多对比八大锁性能的文章,时间大部分比较早。苹果对某些锁内部进行了优化。这篇文章找中会以10万次数据做对比对主流锁性能进行分析...
一、栅栏函数 CPU的乱序执行能力让我们对多线程的安全保障的努力变得异常困难。因此要保证线程安全,阻止CPU换序是必需的。遗憾的是,现在并不存在...