多线程

作者: shenhaieyu | 来源:发表于2016-05-18 22:56 被阅读28次

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    主队列同步:死锁

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

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

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

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

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

    相关文章

      网友评论

          本文标题:多线程

          本文链接:https://www.haomeiwen.com/subject/qzvwrttx.html