runLoop的应用

作者: tiGress | 来源:发表于2017-08-09 13:32 被阅读6次

    runloop的应用:

    1.NSTimer

    2.ImageView显示

    3.PerformSelector

    4.常驻线程

    5.自动释放池

    一个简单的例子,在子线程中完成一个任务后,子线程就处于消亡。现在要求子线程完成任务后,再重新唤醒子线程。解决办法:考虑使用runloop,使任务永远不能完成,那么子线程就不会销毁。

    1.两个按钮,一个创建子线程,一个重新启动子线程

    所以在创建子线程的时候,在任务中添加一个runloop(必须有个timer或者source,runloop才会执行)。

    2.添加runloop

    这样,就可以重新在原来的子线程中开启任务了。

    总结下:

    1.什么是 runloop

    运行循环,跑圈。内部就是 do-while循环,在这个循环内部不断的处理各种任务。

    2. 一个线程对应一个runloop,主线程的runloop默认已经启动。子线程的需要手动启动(run)

    3. runloop只能选择一个mode启动,如果当前的mode中没有任何的source和timer,那么直接退出runloop。

    4.自动释放池什么时候释放?

    当runloop 即将睡眠的时候销毁之前的释放池,重新创建一个新的

    5.observer 可以监听runloop的状态

    6.runloop的使用场景:

    1.开启一个常驻线程,让一个子线程不进入消亡状态,等待其他线程发来消息,处理其他事件。

    1.1.在子线程中开启一个定时器。

    1.2在子线程中进行一些长期监控

    2.可以控制定时器在特定模式下执行。

    3.可以添加observer监听runloop的状态,比如监听点击事件的处理(在所有点击事件之前做一些事情)

    相关文章

      网友评论

        本文标题:runLoop的应用

        本文链接:https://www.haomeiwen.com/subject/fwnfrxtx.html