皮皮网
皮皮网
红鸟棋牌源码

【lua 5.2 源码】【计算涨停价源码】【php 会员管理源码】iosrunloop源码编译

时间:2024-11-30 13:49:25 分类:综合 编辑:simcms新车源码
1.ios RunLoop理解

iosrunloop源码编译

源码lua 5.2 源码

ios RunLoop理解

源码lua 5.2 源码        RunLoop 就是一种循环,只不过它这种循环比较高级。一般的 while 循环会导致 CPU 进入忙等待状态,而 RunLoop 则是一种“闲”等待,当没有事件时,RunLoop 会进入休眠状态,有事件发生时, RunLoop 会去找对应的 Handler 处理事件。RunLoop 可以让线程在需要做事的时候忙起来,不需要的话就让线程休眠,会一直保持不会直接退出。

源码lua 5.2 源码

        RunLoop 实际上是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的持续运行。

源码lua 5.2 源码

        RunLoop有5种模式

源码lua 5.2 源码

        NSDefaultRunLoopMode (默认模式,有事件响应的时候,会阻塞旧事件)

源码lua 5.2 源码

        NSRunLoopCommonModes (普通模式,不会影响任何事件)

源码lua 5.2 源码

        UITrackingRunLoopMode (只能是有事件的时候才会响应的模式,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他Mode影响)

源码lua 5.2 源码

        还有两种系统级别的模式

源码lua 5.2 源码

        一个是app刚启动的时候会执行一次

源码lua 5.2 源码

        另外一个是系统检测app各种事件的模式

源码lua 5.2 源码

        RunLoop的作用就是用来管理线程的, 当线程的RunLoop开启之后,线程就会在执行完成任务后,进入休眠状态,随时等待接收新的任务,而不是退出。

源码lua 5.2 源码

        RunLoop 和线程是息息相关的,我们知道线程的作用是用来执行特定的一个或多个任务,在默认情况下,线程执行完之后就会退出,就不能再执行任务了。这时我们就需要采用一种方式来让线程能够不断地处理任务,并不退出。所以,我们就有了 RunLoop。

源码lua 5.2 源码

        一条线程对应一个RunLoop对象,每条线程都有唯一一个与之对应的 RunLoop 对象。

源码lua 5.2 源码

        RunLoop 并不保证线程安全。我们只能在当前线程内部操作当前线程的 RunLoop 对象,而不能在当前线程内部去操作其他线程的 RunLoop 对象方法。

源码lua 5.2 源码

        RunLoop 对象在第一次获取 RunLoop 时创建,销毁则是在线程结束的时候。

源码lua 5.2 源码

        主线程的 RunLoop 对象系统自动帮助我们创建好了,而子线程的 RunLoop对象需要我们主动创建和维护。

源码lua 5.2 源码

        默认情况下主线程的 RunLoop是启动的

源码lua 5.2 源码

        main.m文件如下所示:

源码lua 5.2 源码

源码lua 5.2 源码

本文地址:http://0553.net.cn/news/4f612993866.html

热点资讯

copyright © 2016 powered by 皮皮网   sitemap