iOS多线程简介 - Swift版本 3.多线程开发 -- Run Loop

前面, 我们讲完了 NSOperation 的使用, 现在让我们来看看在 iOS 中得一些多线程开发的注意事项.


1.Run Loop

在 iOS 中, 它有一种运行机制, 叫做 Run Loop, 让我们来看看什么是 Run Loop

1.Run Loop提供了⼀种异步执⾏代码的机制,不能并⾏执⾏任务.
2.在朱队列中, Main Run Loop直接配合任务的执行, 负责处理 UI 事件, 计时器, 以及其他内核相关事件.
3.Run Loop的主要目的是保证程序执行的线程不会被系统终止.


2.Run Loop特点

1.当有事件发⽣时,Run Loop会根据具体的事件类型通知应⽤程序做出响应
2.当没有事件发生时,Run Loop会进⼊休眠状态,从⽽达到省电的⽬的
3.当事件再次发生时,Run Loop会被重新唤醒,处理事件

主线程和其他线程中的Run Loop
1.iOS程序的主线程默认已经配置好了Run Loop.
2.其他线程默认情况下没有设置Run Loop.

PS: ⼀般在开发中很少会主动创建RunLoop, ⽽通常会把事件添加到RunLoop中

示意图:
1

2


3.多线程的循环引用

如果self对象持有操作对象的引⽤,同时操作对象当中又直接访问了self时, 才会造成循环引⽤

单纯在操作对象中使用self不会造成循环引⽤

PS: 此时不能使用(weakSelf), 如果使用了 weakSelf, 那么线程就会在没有执行, 或者执行了一部分的时候直接退出.

PS: 由于 Swift 有非常严格的初始化方法, 并且取消了 OC 中的 dealloc方法, 所以这里就不用代码演示了, 大家只要知道在多线程循环引用中的一些注意事项就好了


好了, 这次就讲到这里, 下次我们继续~~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值