美文网首页
runloop详解

runloop详解

作者: 繁华落尽2018 | 来源:发表于2017-12-08 13:34 被阅读6次
  1. ios main函数:UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class]))传递nil相当于传递@“UIApplication”
    死循环--Runloop 循环

  2. runloop:
    不是苹果所特有的,ios,macos都有
    目的:
    保证当前线程不退出。
    负责监听事件,ios中网络事件,触摸事件,时钟
    runloop模式:
    默认模式-NSDefaultRunLoopMode、UI模式-UITrackingRunLoopModel、占位模式(默认&&UI模式)NSRunLoopCommonModes
    ui模式的特点:RunLoop会优先处理UI模式下的事件,UI模式只能够被UI事件所唤醒!!
    runloop优先处理UI事件
    默认模式:source、observer、timer
    UI模式:source、observer、timer(拖拽UI影响主线的runloop),拖拽屏幕UI模式被唤醒,ui模式处理事件
    如果timer事件添加在默认模式,在有UI操作时,timer事件会被挂起,如果添加在UI模式,只有在ui操作的时候timer事件才会执行,如果想在UI操作和不操作情况下都处理Timer事件,可以在默认模式和UI模式都添加timer事件,为了代码简介,苹果提供了占位模式。

  3. 在NSTimer中执行耗时错做
    [NSThreadsleepTimeInterval:1.0]
    耗时操作放子线程
    // 开一个子线程
    NSThread* thread = [NSTread allocl] initWithBlock:^{
    // block里面放耗时操作
    }

4.作为属性,强引用,会保住NSThread OC对象的命
线程走没有走和NSThtead对象没有关系,线程由cpu调度,一个强引用的对象没有办法保住线程的名。NSThread OC对象不是线程,NSThread对象用来控制线程。NSthread对象不是线程。
cpu执行完线程上的任务会把线程丢到线程池,线程就释放了;
线程对象不退出NSthread对象就不会释放,让线程由执行不完的任务就行了。
runloop可以从事件队列中取事件执行,每条线程上都有一个runloop,在第一次获取runloop的时候创建,懒加载的;
runloop被创建出来后,并不糊运行,需要手动的Run //开启run意味着开启循环,死循环;通过run用oc的方法就不能停止了。
runloop启动还有一个方法可以指定启动的时间[[NSRunLoop currentRunLoop] runUntilDate:]
[NSTread exit] 退出主线程后,子线程还在执行任务,界面卡住了。

相关文章

  • iOS Runtime

    iOS RunLoop详解---重要而详细iOS RunLoop详解-部分

  • RunLoop详解

    RunLoop详解 RunLoop运行循环(死循环) RunLoop模式 NSDefaultRunLoopMode...

  • Runloop 详解

    Runloop 详解 参考链接: 深入理解RunLoop CFRunLoop 概念 runloop :是管理和处理...

  • Runloop

    Runloop 实现原理及应用iOS - RunLoop 底层源码详解及具体运用

  • 深入理解RunLoop

    深入理解runloopiOS RunLoop详解

  • 记录一些介绍Runloop的牛文

    老司机出品——源码解析之RunLoop详解深入理解RunLoop关于RunLoop部分源码的注释CFRunLoop...

  • 底层原理探究(二)RunLoop

    转自: 老司机出品——源码解析之RunLoop详解入门使用: RunLoop入门 看我就够了孙源的Runloop视...

  • RunLoop 详解

    关于 runloop 的运行 点击链接详解附有源码

  • iOS RunLoop 详解

    转自 iOS RunLoop 详解 image.png Runloop 是和线程紧密相关的基础组件,是很多多线程有...

  • 详解RunLoop之面试题

    本文首发于个人博客 回顾详解RunLoop之源码分析中提出的问题 什么是Runloop ios程序中 main函数...

网友评论

      本文标题:runloop详解

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