美文网首页面试题
Runloop与多线程

Runloop与多线程

作者: 芝麻酱的简书 | 来源:发表于2018-05-11 11:52 被阅读12次

线程是和runloop一一对应的。
自己创建的线程默认是没有runloop的。

思考 怎样实现一个常驻线程?
1.为当前线程开启一个runloop;
  createRunloop方法会查找当前线程是否有runloop,如果没有则系统会为我们创建一个
2.向该runloop中添加一个port/source等维持runloop的事件循环
3.启动该runloop

代码实践:


创建一个线程安全的thread并启动.png 屏幕快照 2018-05-11 11.39.05.png

注意:运行的模式和添加的mode需要是同一个,比如上图的kCFRunLoopDefaultMode

思考:怎样保证子线程数据回来更新UI的时候,不打断用户的滑动操作?

当用户滑动的时候,当前的runloop运行在trackingMode模式下,我们可以把子线程抛会主线程更新UI这段逻辑封装到主线程的defaultMode下,这样抛回来的任务当用户滑动的时候,就不会执行打断用户滑动;当滑动结束后,主线程切回到defaultMode就可以执行更新ui数据。

相关文章

  • RunLoop

    概念 数据结构 事件循环机制 RunLoop 与 NSTimer RunLoop 与多线程 一、概念 RunLoo...

  • ios面试题

    runtime介绍 runLoop与多线程关系 多线程原理(GCD、NSOperation) AFNetworki...

  • RunLoop的使用

    RunLoop是什么? 它有什么作用?Runloop和多线程又是什么关系?timer 与 Runloop 有什么关...

  • RunLoop其实没有我们想的那么难

    目录一、纯纯的RunLoop(上小菜)二、RunLoop与多线程相结合使用(上大菜) 一、纯纯的RunLoop(上...

  • GeekBand - iOS 多线程和RunLoop 总结

    iOS 开发高级进阶 第三周 多线程 Runloop iOS 多线程以及 RunLoop 学习总结 基础知识 什么...

  • iOS 多线程:『RunLoop』详尽总结

    本文用来介绍 iOS 多线程中,RunLoop 的相关知识。主要包括如下内容:RunLoop 简介RunLoop ...

  • 22.iOS底层学习之多线程原理

    本篇提纲:1、线程与进程2、多线程3、多线程相关面试题4、线程安全问题5、线程与runloop的关系 线程与进程 ...

  • Runloop与多线程

    线程是和runloop一一对应的。自己创建的线程默认是没有runloop的。 思考 怎样实现一个常驻线程? 代码实...

  • Runloop与多线程

    怎样保证子线程数据回来更新UI的时候不打断用户的滑动操作? 用户滑动操作时runloop是运行在kCFRunLo...

  • RunLoop初探,满足项目的基本应用

    iOS开发肯定离不开多线程编程,而多线程又跟RunLoop有着密切的关系,这篇文章就来解剖下RunLoop。 每个...

网友评论

    本文标题:Runloop与多线程

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