iOS多线程中的锁

涉及到多线程共享资源的情况下就避免不了资源竞争的问题,这时候就会用到各种锁,例如,@synchronizedNSLockOSSpinLock等等,虽然都是锁,但是锁的底层实现也不尽相同。大概可以分为:互斥锁自旋锁递归锁读写锁

{
	lock()//加锁
		doSomeThing()//临界区
	unlock()//解锁
}

我们锁的目的是在任何时刻最多只能有一个线程在修改资源,即在任何时刻只能有一个操作者保持锁。

阅读全文

Runtime(三) 消息转发

向对象发送一个消息,如果没有处理就会发生错误。但是在产生错误之前,runtime会给接受对象第二次机会来处理消息。

阅读全文

Runtime (一) 消息

Message

这篇文章描述了消息如何通过使用objc_msgSend发送,如何通过方法名称找到对应方法的reference

The objc_msgSend Function

在Object-C中,发送的消息直到运行时才绑定到正真的方式实现。

阅读全文

消息转发

描述:如果类不能执行这个方法,会执行动态消息转发,如果该类还是不能动态的添加方法,则走完整的消息转发。分两步,第一步看看有没有其他类可以执行该方法,如果没有走第二步,将所有的细节封装到NSInvocation中,给接受者最后一次机会

阅读全文

作者的图片

董二千

愿你走出半生 归来仍是少年

iOS Developer

China