Object-C多线程总结 五月 27, 2018 发布在 ios 目录 多线程概念 NSOperation GCD(Grand Central Dispatch) NSThread 资源竞争 阅读全文
iOS多线程中的锁 十二月 1, 2017 发布在 iOS 涉及到多线程共享资源的情况下就避免不了资源竞争的问题,这时候就会用到各种锁,例如,@synchronized、NSLock、OSSpinLock等等,虽然都是锁,但是锁的底层实现也不尽相同。大概可以分为:互斥锁、自旋锁、递归锁、 读写锁。 { lock()//加锁 doSomeThing()//临界区 unlock()//解锁 } 我们锁的目的是在任何时刻最多只能有一个线程在修改资源,即在任何时刻只能有一个操作者保持锁。 阅读全文
Runtime (二) 动态方法实现 十月 9, 2017 发布在 iOS Dynamic Method Resolution 有的时候,你可能想要提供方法的动态实现。例如,Object-C 属性特征包含了@dynamic 阅读全文
Runtime (一) 消息 九月 29, 2017 发布在 iOS Message 这篇文章描述了消息如何通过使用objc_msgSend发送,如何通过方法名称找到对应方法的reference The objc_msgSend Function 在Object-C中,发送的消息直到运行时才绑定到正真的方式实现。 阅读全文
消息转发 四月 3, 2017 发布在 iOS 描述:如果类不能执行这个方法,会执行动态消息转发,如果该类还是不能动态的添加方法,则走完整的消息转发。分两步,第一步看看有没有其他类可以执行该方法,如果没有走第二步,将所有的细节封装到NSInvocation中,给接受者最后一次机会。 阅读全文