美文网首页
runloop和线程有什么关系? runloop的mode作用是

runloop和线程有什么关系? runloop的mode作用是

作者: 风从虎云从龙118 | 来源:发表于2016-12-13 22:42 被阅读0次

1、总的说来,Run loop,正如其名,loop表示某种循环,和run放在一起就表示一直在运行着的循环。实际上,run loop和线程是紧密相连的,可以这样说run loop是为了线程而生,没有线程,它就没有存在的必要。Run loops是线程的基础架构部分, Cocoa 和 CoreFundation 都提供了 run loop 对象方便配置和管理线程的 run loop (以下都以 Cocoa 为例)。每个线程,包括程序的主线程( main thread )都有与之相应的 run loop 对象。

runloop 和线程的关系:

主线程的run loop默认是启动的。

iOS的应用程序里面,程序启动后会有一个如下的main()函数

intmain(intargc,char* argv[]) {@autoreleasepool {returnUIApplicationMain(argc, argv,nil,NSStringFromClass([AppDelegateclass]));}}

重点是UIApplicationMain()函数,这个方法会为main thread设置一个NSRunLoop对象,这就解释了:为什么我们的应用可以在无人操作的时候休息,需要让它干活的时候又能立马响应。

对其它线程来说,run loop默认是没有启动的,如果你需要更多的线程交互则可以手动配置和启动,如果线程只是去执行一个长时间的已确定的任务则不需要。

在任何一个 Cocoa 程序的线程中,都可以通过以下代码来获取到当前线程的 run loop 。

NSRunLoop*runloop = [NSRunLoopcurrentRunLoop];

参考链接:《Objective-C之run loop详解》

2、model 主要是用来指定事件在运行循环中的优先级的,分为:

NSDefaultRunLoopMode(kCFRunLoopDefaultMode):默认,空闲状态

UITrackingRunLoopMode:ScrollView滑动时

UIInitializationRunLoopMode:启动时

NSRunLoopCommonModes(kCFRunLoopCommonModes):Mode集合

苹果公开提供的 Mode 有两个:

NSDefaultRunLoopMode(kCFRunLoopDefaultMode)

NSRunLoopCommonModes(kCFRunLoopCommonModes)

相关文章

  • Runloop在实际中到底有什么用?

    在面试中经常会被问到关于Runloop的问题,比如: runloop和线程有什么关系? runloop的mode作...

  • iOS Runloop & AutoReleasePool

    Runloop概述 runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?...

  • runloop和线程有什么关系? runloop的mode作用是

    1、总的说来,Run loop,正如其名,loop表示某种循环,和run放在一起就表示一直在运行着的循环。实际上,...

  • runloop

    runloop是什么 runloop与线程有什么关系 runloop的原理 runloop的使用

  • RunLoop

    iOS刨根问底-深入理解RunLoop runloop 和线程有什么关系 iOS 多线程:RunLoop详细总结

  • RunLoop

    一、RunLoop是什么二、RunLoop的内部结构 1、RunLoop和线程的关系 2、RunLoop和Mode...

  • 第一篇:RunLoop的一些理论知识

    目录一、什么是RunLoop二、RunLoop和线程的关系三、RunLoop的Mode四、RunLoop的内部逻辑...

  • Runtime 实际运用

    runloop和线程一一对应runloop包含多个mode, mode包含多个 mode item(sources...

  • 2019 iOS 面试 -中级篇之 RunLoop

    1. runloop是来做什么的?runloop和线程有什么关系?主线程默认开启了runloop么?子线程呢? R...

  • RunLoop总结

    RunLoop介绍 RunLoop和线程有什么关系? 总的来说,RunLoop正如其名,loop表示某种循环,和r...

网友评论

      本文标题:runloop和线程有什么关系? runloop的mode作用是

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