OSSpinLock 与 os_unfair_lock

OSSpinLock 因为线程安全问题已被 Apple 废弃。苹果建议使用 os_unfair_lock 替换,os_unfair_lock 是互斥锁。

iOS 中的锁

我们在使用多线程访问同一块资源时,常会面临数据安全的问题。为了能够保证每次只有一个线程在访问同一块资源,我们需要借助锁。本篇归类记录 iOS 常见的八种锁是什么及怎么样。

iOS 多线程 - NSOperation

iOS 日常开发过程中,涉及到多线程处理的需求,绝大多数可以通过 GCD 来完成。但如果想要给 task 添加依赖、取消、暂停、恢复的需求,GCD 的实现就会变得很复杂。这时就引申除了 NSOperation,NSOperation 是基于 GCD 的封装,提供面向对象的形式。我们可以借助 NSOperation 将每个 task 封装为一个个对象再进行操作,这也使得线程处理的代码逻辑更为清晰易懂。

iOS 多线程 - GCD

GCD(Grand Central Dispatch)是苹果提出的一套多线程解决方案,它拥有系统级的线程管理机制,开发者不需要关注线程的生命周期管理,只需要关注要执行的任务。GCD 可用于多核的并行运算,会自动利用更多的 CPU 内核。