美文网首页
RunLoop概念

RunLoop概念

作者: bugLife丶 | 来源:发表于2019-07-25 15:34 被阅读0次

    RunLoop是通过内部维护的事件循环(Event Loop)来对事件/消息进行管理的一个对象。

    1、没有消息处理时,休眠已避免资源占用,由用户态切换到内核态(CPU-内核态和用户态) 2、有消息需要处理时,立刻被唤醒,由内核态切换到用户态

    为什么main函数不会退出?

    int main(int argc, char * argv[]) {

        @autoreleasepool {

            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

        }

    }

    UIApplicationMain内部默认开启了主线程的RunLoop,并执行了一段无限循环的代码(不是简单的for循环或while循环)

    //无限循环代码模式(伪代码)

    int main(int argc, char * argv[]) {       

        BOOL running = YES;

        do {

            // 执行各种任务,处理各种事件

            // ......

        } while (running);

        return 0;

    }

    UIApplicationMain函数一直没有返回,而是不断地接收处理消息以及等待休眠,所以运行程序之后会保持持续运行状态。

    相关文章

      网友评论

          本文标题:RunLoop概念

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