多线程

同步锁,又叫互斥锁,@synchronized(self)

自旋锁:atomic:原子属性,多线程环境下,只有一个线程可以对它赋值,读取没有线程限制

nonatomic:非原子属性,读取没有限制

线程安全:在多个线程进行读写操作时,仍然能够保证数据的正确

几乎所有的UIKit类都是非线程安全的

所有的mutable开头的类都不是线程安全的


weak:弱引用,如果对象销毁,会指向0x0地址

assign:基本数据类型,如果使用assign指针指向对象,对象释放时,会指向原来对象的地址,发生野指针错误。


消息循环:循环开始,创建对象,创建自动释放池,执行事件,倾倒自动释放池,一次循环结束。

线程上运行着消息循环,根据消息的不同会有不同的处理方法。

消息循环包含输入源和定时源。输入源包含键盘、鼠标、NSPort等等。

消息循环的默认模式是KCFRunLoopDefaultMode,当拖动界面的时候,模式变成UITrackingRunLoopMode。添加定时器的时候,会有一个模式。

只有当定时器的模式和消息循环的模式匹配的时候,定时器才能运行在消息循环中。

定时器的NSRunLoopCommonModes是一个模式集合。


同步异步:是否开启新线程

并发串行:队列中任务是同时执行还是串行执行


主队列同步:死锁

主队列异步:不开启新线程,串行执行任务

串行队列同步:不开启新线程,串行执行任务

串行队列异步:开启一个新线程,串行执行任务

并发队列同步:不开启新线程,串行执行任务

并发队列异步:开启多个新线程,并发执行任务

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 多线程的四种解决方案:pthread,NSThread,GCD,NSOperation 一、多线程的基本概念进程:...
    阳明AI阅读 3,382评论 0 3
  • 系列文章: 多线程 多线程 pthread、NSThread 多线程 GCD 多线程 NSOperation 多线...
    林安530阅读 2,967评论 0 0
  • 目录一、GCD的两对儿主要概念及它们的六种组合  1、dispatch_sync和dispatch_async  ...
    意一ineyee阅读 5,388评论 0 0
  • 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述。 多线程的基本概念 线程的状...
    JasonL阅读 2,435评论 0 2
  • 我们总是嚷嚷着,要有万贯家产,要拥有豪华别墅,要有美女在怀,为了拥有自己想要的,我们拼命努力,每天熬夜到一两点,整...
    潘梓曦阅读 9,959评论 2 0

友情链接更多精彩内容