iOS开发:Runloop专栏

117 篇文章 12 订阅 ¥159.90 ¥299.90
Runloop在iOS开发中扮演重要角色,它是一个事件处理循环,管理线程任务和休眠。每个线程都有相应的Runloop,主线程的Runloop默认启动。Runloop与线程、NSTimer、事件响应、手势识别等密切相关,通过不同模式处理Source/Timer/Observer。了解Runloop的工作原理和使用场景对于优化iOS应用性能至关重要。
摘要由CSDN通过智能技术生成

       在iOS开发过程中,Runloop的使用也是不容小觑的,虽然也是不太常用,但是这部分对于iOS开发也是相当重要的,而且在面试找工作的时候也是面试官必考的部分。那么下来就来谈谈Runloop的理论及使用。

        一、Runloop概念

        1.Runloop概念:Runloops是与线程相关的基础框架的一部分。一个Runloop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。其实它内部就是do-while循环,这个循环内部不断地处理各种任务(比如Timer,Observer)。使用Runloop的目的是让线程在有工作任务的时候忙于工作,在没工作任务的时候处于休眠状态。

        2.NSRunLoop和CFRunLoopRef

       在开发的时候我们不能在一个线程中去操作另外一个线程的Runloop对象,如果这样做很可能会造成无法估量的后果。不过值得庆幸的是CoreFundation中的不透明类CFRunLoopRef是线程安全的,而且这两种类型的Runloop完全可以混合使用。

       Cocoa中的NSRunLoop类可以通过实例方法: - (CFRunLoopRef)getCFRunLoop;
       获取对应的CFRunLoopRef类,来达到线程安全的目的。
       CFRunLoopRef是在CoreFoundation框架内的,它提供了C语言

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三掌柜666

如果对您有所帮助,请支持一下呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值