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

方式

NSThread iOS2.0出现

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

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

安全的问题

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

加锁

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

保证读和写

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 多线程基本概念 单核CPU,同一时间cpu只能处理1个线程,只有1个线程在执行 。多线程同时执行:是CPU快速的在...
    WeiHing阅读 725评论 1 5
  • Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么? 1...
    AlanGe阅读 1,792评论 0 17
  • 多线程 在iOS开发中为提高程序的运行效率会将比较耗时的操作放在子线程中执行,iOS系统进程默认启动一个主线程,用...
    郭豪豪阅读 2,616评论 0 4
  • 1.Pthreads 真正跨平台的多线程技术,可以跨UNIX、Linux、windows平台。 创建Pthread...
    Ljson阅读 3,165评论 3 29
  • 本人普通本科妹子一枚,复习5个月,然后就回家过年了。 但是忐忑不安的❤心,一直没有忘记分数这回事。 过完年,就来到...
    dcc的xcc阅读 254评论 4 1