内容简介:就是下图所示的,用自己话总结出来就好
- 什么是Runloop
- ios程序中 main函数为什么不会退出
- runloop和线程的关系?
- 程序中添加每3秒响应一次的NSTimer,当拖动tableview时timer可能无法响应要怎么解决?
- runloop内部实现逻辑?
- runloop 是怎么响应用户操作的, 具体流程是什么样的?
- 说说runLoop的几种状态
- runloop的mode作用是什么?
- 如何实现一个常驻线程
什么是Runloop
- Runloop 还是比较顾名思义的一个东西,说白了就是一种循环,只不过它这种循环比较高级。一般的 while 循环会导致 CPU 进入忙等待状态,而 Runloop 则是一种“闲”等待,这部分可以类比 Linux 下的 epoll。当没有事件时,Runloop 会进入休眠状态,有事件发生时, Runloop 会去找对应的 Handler 处理事件。Runloop 可以让线程在需要做事的时候忙起来,不需要的话就让线程休眠
- RunLoop是通过通过内部维护的时间循环来对事件/消息进行管理的一个对象
- 没有消息需要处理时,休眠避免掉资源占用
- 用户态 -> 内核态
- 有消息时候,立刻被唤醒
- 内核态 -> 用户态
- 内核态 -> 用户态
- 没有消息需要处理时,休眠避免掉资源占用
ios程序中 main函数为什么不会退出
- main函数内部调用 UIApplicationMain 这个方法会启动一个RunLoop,有事做就做事,没事做就等待,保持不会退出
runloop和线程的关系?
+ 每条线程都有唯一的一个与之对应的RunLoop对象 + RunLoop保存在一个全局的Dictionary里,线程作为key,RunLoop作为value + 线程刚创建时并没有RunLoop对象,RunLoop会在第一次获取它时创建 + RunLoop会在线程结束时销毁 复制代码
runloop内部实现逻辑?
就是下图所示的,用自己话总结出来就好
程序中添加每3秒响应一次的NSTimer,当拖动tableview时timer可能无法响应要怎么解决?
-
常见的2种Mode
-
kCFRunLoopDefaultMode(NSDefaultRunLoopMode):App的默认Mode,通常主线程是在这个Mode下运行
-
UITrackingRunLoopMode:界面跟踪 Mode,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他 Mode 影响
-
common模式下(一个占位用的Mode,不是一种真正的Mode) 可以兼容以上两种模式
runloop 是怎么响应用户操作的, 具体流程是什么样的?
- source1 捕捉用户触摸事件
- source0去处理触摸时间
说说runLoop的几种状态
- kCFRunLoopEntry = (1UL << 0), // 即将进入Loop
- kCFRunLoopBeforeTimers = (1UL << 1), //即将处理Timer
- kCFRunLoopBeforeSources = (1UL << 2), //即将处理Source
- kCFRunLoopBeforeWaiting = (1UL << 5), //即将进入休眠
- kCFRunLoopAfterWaiting = (1UL << 6), //刚从休眠中唤醒
- kCFRunLoopExit = (1UL << 7), //即将退出Loop
- kCFRunLoopAllActivities = 0x0FFFFFFFU //所有状态改变
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 前端面试题—vue部分详解
- 【Android面试】HashMap详解(一)
- 非面试向跨域实践详解
- 2019 JavaScript面试题详解(基础+进阶)
- iOS 模式详解—「runtime 面试、工作」看我就 ???? 了 ^_^.
- 数据结构和算法面试题系列—二分查找算法详解
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Mining
Jiawei Han、Micheline Kamber、Jian Pei / Morgan Kaufmann / 2011-7-6 / USD 74.95
The increasing volume of data in modern business and science calls for more complex and sophisticated tools. Although advances in data mining technology have made extensive data collection much easier......一起来看看 《Data Mining》 这本书的介绍吧!