场景 同一时间,只有一条线程进行写操作; 同一时间,允许多条线程进行读操作; 同一时间,不能既有写,又有读的操作 方案 pthread_rwlock dispatch_bar...
场景 同一时间,只有一条线程进行写操作; 同一时间,允许多条线程进行读操作; 同一时间,不能既有写,又有读的操作 方案 pthread_rwlock dispatch_bar...
性能从高到低 os_unfair_lock OS_SPinLock dispatch_semaphore pthread_mutex dispatch_serial_queu...
OSSpinLock1>自旋锁,等待锁的线程会处于忙等(busy-wait)状态,始终占着CPU资源;2>实现原理:相当于执行一个while循环;3>目前已经不再安全,可能出...
死锁 往当前串行队列 同步添加任务,会造成死锁 performSelector: withObject: afterDelay: 在子线程上执行这个方法,这个方法本质向run...
同步/异步 同步:立即执行,不具备开线程的能力异步:不立即执行,具备开线程的能力 串行/并发 串行:某一时间只能执行一个任务,按顺序执行并发:允许多个任务交替执行并行:允许多...
讲讲RunLoop,项目中有用到过RunLoop吗? RunLoop内部逻辑实现? 1.通知Observers : 进入RunLoop2.通知Observers : 处理ti...
1.通过block获取imp 2.通过imp 获取block 3.移除block
1.获取sel名称 2.获取sel 3.判断两个sel是否是同一个sel
1.获取属性名 2.获取属性信息 3.拷贝属性信息 4.拷贝指定属性信息的值
1.获取协议 2.拷贝协议列表 3.判断协议是否遵守了另一个协议 4.判断两个协议是否为同一个协议 5.获取协议名 6.获取方法描述 7.获取方法描述列表 8.获取指定属性 ...
1.获取方法 2.获取方法名 3.获取方法编码 4.获取方法实现 class_getMethodImplementation //更快 method_getImplemen...
1.获取成员变量/名称/类型/偏移量 class_getInstanceVariable ivar_getName ivar_getTypeEncoding ivar_get...
1.动态创建一个类 2.获取一个类 3.判断是否元类 4.查找类 5.获取class 获取已分配(包含未注册)类的数量 objc_getClassList 7. 获取已分配(...
1.获取类名 2.判断是否元类 3.获取父类 4.设置父类(DEPRECATED) 5.class version 6.获取类的实例对象的大小 8.成员变量(ivar)获取 ...
1. Class object_getClass(id obj) 获取isa指向的class 2. Class object_setClass(id obj, Class ...
文章来自: 爱吃榴莲的程序员iOS 正则表达式[https://www.jianshu.com/p/7a0f164dfa95] 前言 在实际开发中,基本每一个APP都会有登录...
runloop : 程序运行过程中循环做一些事情 1.应用范畴 定时器(Timer)、PerformSelector GCD Async Main Queue 事件响应、手势...