列举 cocoa 中常见的几种多线程的实现,并谈谈多线程安全的额几种解决办法及多线程安全怎么控制?

方式

NSThread iOS2.0出现

GCD的出现是为了替代 NSThread 的,缺点是纯 C 语言的框架,然后是 block,因为我们一般不太会 block,所以感觉比较难,其实只要搞懂了 block 就很容易了

NSOperation 效率比 GCD 要低,可以管理队列,设置最大并发数,可以暂停取消队列中的任务

安全的问题

安全问题其实就是资源共享,资源竞争的问题

加锁

互斥锁,同步锁(@synchronized(self)),一般用 self,大括号中写加锁的代码,加锁的锁对象必须要唯一

保证读和写

原子锁:只能保证写的安全,不能保证读的安全

你可能感兴趣的:(列举 cocoa 中常见的几种多线程的实现,并谈谈多线程安全的额几种解决办法及多线程安全怎么控制?)