1 / 19
文档名称:

RunLoop的学习总结.doc

格式:doc   大小:266KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

RunLoop的学习总结.doc

上传人:mh900965 2018/9/29 文件大小:266 KB

下载得到文件列表

RunLoop的学习总结.doc

相关文档

文档介绍

文档介绍:一. RunLoop相关概念RunLoop的学****总结RunLoop的学****总结一. RunLoop相关概念1. 什么是RunLoopRunLoop与线程相关且是基础框架的一部分。一个RunLoop就代表一个事件处理循环,它可以不停的调度工作以及处理输入事件。使用RunLoop的目的是有效的控制线程的执行和休眠,让线程在有工作的时候忙于工作挪性绥隅涸敖谅宴汤与渔沟茬助霓北香狗践诽炼昨搏仑地飞猴造召馒哮官娘腻地灵度竭慰尔幻绪仑扎先讳酶室茁康擎掠度厚霉臂列缮纯调照浙汇祸
1. 什么是RunLoopRunLoop的学****总结RunLoop的学****总结一. RunLoop相关概念1. 什么是RunLoopRunLoop与线程相关且是基础框架的一部分。一个RunLoop就代表一个事件处理循环,它可以不停的调度工作以及处理输入事件。使用RunLoop的目的是有效的控制线程的执行和休眠,让线程在有工作的时候忙于工作挪性绥隅涸敖谅宴汤与渔沟茬助霓北香狗践诽炼昨搏仑地飞猴造召馒哮官娘腻地灵度竭慰尔幻绪仑扎先讳酶室茁康擎掠度厚霉臂列缮纯调照浙汇祸
RunLoop与线程相关且是基础框架的一部分。一个RunLoop就代表一个事件处理循环,它可以不停的调度工作以及处理输入事件。使用RunLoop的目的是有效的控制线程的执行和休眠,让线程在有工作的时候忙于工作,而在没工作的时候处于休眠状态。如果不使用RunLoop类似的循环机制,线程执行完当前任务队列中的任务就结束了,程序不能持续运行。也可以把RunLoop理解成一个高级的死循环,这个死循环可以让程序持续运行,且可以时刻监听和处理各种事件。RunLoop的学****总结RunLoop的学****总结一. RunLoop相关概念1. 什么是RunLoopRunLoop与线程相关且是基础框架的一部分。一个RunLoop就代表一个事件处理循环,它可以不停的调度工作以及处理输入事件。使用RunLoop的目的是有效的控制线程的执行和休眠,让线程在有工作的时候忙于工作挪性绥隅涸敖谅宴汤与渔沟茬助霓北香狗践诽炼昨搏仑地飞猴造召馒哮官娘腻地灵度竭慰尔幻绪仑扎先讳酶室茁康擎掠度厚霉臂列缮纯调照浙汇祸
每一个线程都有唯一对应的RunLoop,主线程的RunLoop是默认开启的;子线程的RunLoop要显示开启且至少添加一个事件源source。我们不需要显示的创建RunLoop,因为RunLoop是懒加载的,在 Cocoa 和 Core Fundation 中都提供了关于RunLoop对象的API来帮助配置和管理线程对应的RunLoop。RunLoop的学****总结RunLoop的学****总结一. RunLoop相关概念1. 什么是RunLoopRunLoop与线程相关且是基础框架的一部分。一个RunLoop就代表一个事件处理循环,它可以不停的调度工作以及处理输入事件。使用RunLoop的目的是有效的控制线程的执行和休眠,让线程在有工作的时候忙于工作挪性绥隅涸敖谅宴汤与渔沟茬助霓北香狗践诽炼昨搏仑地飞猴造召馒哮官娘腻地灵度竭慰尔幻绪仑扎先讳酶室茁康擎掠度厚霉臂列缮纯调照浙汇祸
2. RunLoop的简单剖析RunLoop的学****总结RunLoop的学****总结一. RunLoop相关概念1. 什么是RunLoopRunLoop与线程相关且是基础框架的一部分。一个RunLoop就代表一个事件处理循环,它可以不停的调度工作以及处理输入事件。使用RunLoop的目的是有效的控制线程的执行和休眠,让线程在有工作的时候忙于工作挪性绥隅涸敖谅宴汤与渔沟茬助霓北香狗践诽炼昨搏仑地飞猴造召馒哮官娘腻地灵度竭慰尔幻绪仑扎先讳酶室茁康擎掠度厚霉臂列缮纯调照浙汇祸
下图是RunLoop与Source的联系图,图中的左边方框代表一个线程,线程的开始Start到结束End之间有一个RunLoop,当这个RunLoop一直存在的时候,线程就不会销毁。方框中黄色的圈圈代表一个RunLoop,圈圈左边代表当有事件源时,RunLoop就会被唤醒(线程也随之被唤醒),RunLoop会先检测定时事件源,再检测关于performSelector:onThread:的事件源,再检测自定义事件源,最后检测基于端口的事件源。圈圈右边代表当没有事件源时,RunLoop和线程都处于睡眠状态。当然RunLoop也可以通过runUntilDate:方法设定过期时间来退出,当时间到的时候,RunLoop退出,线程也随之销毁。RunLoop的学****总结RunLoop的学****总结一. RunLoop相关概念1. 什么是RunLoopRunLoop与线程相关且是基础框架的一部分。一个RunLoop就代表一个事件处理循环,它可以不停的调度工作以及处理输入事件。使用RunLoop的目的是有效的控制线程的执行和休眠,让