runloop和线程有什么关系?

  • 每条线程都有唯一的一个RunLoop对象与之对应的
  • 主线程的RunLoop是自动创建并启动
  • 子线程的RunLoop需要手动创建
  • 子线程的RunLoop创建步骤如下:
    • 在子线程中调用[NSRunLoop currentRunLoop]创建RunLoop对象(懒加载,只创建一次
    • 获得RunLoop对象后要调用run方法来启动一个运行循环
      // 启动RunLoop
      [[NSRunLoop currentRunLoop] run];
      
    • RunLoop的其他启动方法
      // 第一个参数:指定运行模式
      // 第二个参数:指定RunLoop的过期时间,即:到了这个时间后RunLoop就失效了
      [[NSRunLoop currentRunLoop] runMode:kCFRunLoopDefaultMode beforeDate:[NSDate distantFuture]];
时间: 2024-10-10 09:05:04

runloop和线程有什么关系?的相关文章

IOS RunLoop 常驻线程的实现

线程常驻,正如其名,我们要实现的事让一个线程长期存在,不被销毁. 这时会有人说,那还不简单吗. 但是这里我们要实现的事如何让线程座椅待命,而且并不是主线程. 首先介绍一下正常情况下的线程使用. // // ViewController.m // CX RunLoop 常驻线程的实现 // // Created by ma c on 16/3/30. // Copyright ? 2016年 xubaoaichiyu. All rights reserved. // #import "ViewCo

服务器线程与包关系(不断跟新)

先画个大概的,思路先理清一下,细节还有很多.这个是服务器比较关键的.其实是只要和地图有关的,GS线程直接扔给map里面,然后接收响应的数据,感觉GS像个桥梁的作用. 服务器线程与包关系(不断跟新),布布扣,bubuko.com

事件循环和线程没有必然关系(就像Windows子线程默认没有消息循环一样),模态对话框和事件循环也没有必然关系(QWidget直接就可以)

周末天冷,索性把电脑抱到床上上网,这几天看了 dbzhang800 博客关于 Qt 事件循环的几篇 Blog,发现自己对 Qt 的事件循环有不少误解.从来只看到现象,这次借 dbzhang800 的博客,就代码论事,因此了解到一些 Qt 深层的实现,虽然是在 Qt 庞大的构架里只算的是冰山的一角,确让人颇为收益. 从 dbzhang800 的博客中转载两篇关于事件循环的文章,放在一起,写作备忘. 再次提到的一点是:事件循环和线程没有必然关系. QThread 的 run() 方法始终是在一个单独

(转)C#/.NET主线程与子线程之间的关系

一般 一个应用程序就对应一个进程,一个进程可有一个或多个线程,而一般有一个主线程. 有的博客上说“至少一个主线程”,这一说法持有怀疑         主线程与子线程之间的关系         **默认情况,在新开启一个子线程的时候,他是前台线程,只有,将线程的IsBackground属性设为true;他才是后台线程         *当子线程是前台线程,则主线程结束并不影响其他线程的执行,只有所有前台线程都结束,程序结束         *当子线程是后台线程,则主线程的结束,会导致子线程的强迫结

做饭与进程线程之间的关系

炒菜与进程线程之间的关系 body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10px; padding-bottom: 10px; background-color: white; padding: 30px; } body > *:first-child { margin-top: 0 !important; } body > *:last-chi

进程与线程之间的关系和区别 及 CPU调度

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位. 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程. (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源. (3)处理机分给线程,即真正在处理机上运行的是线程. (4)线程在执行过程中,需要协作同步.不同进程的线程间要利用消息通信的办法实现同步.

(转)CPU的核心数、线程数的关系和区别

我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级.CPU从早期的单核,发展到现在的双核,多核.CPU除了核心数之外,还有线程数之说,下面文本就来解释一下CPU的核心数与线程数的关系和区别. 简单地说,CPU的核心数是指物理上,也就是硬件上存在着几个核心.比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组,等等,依次类推. 线程数是一种逻辑的概念,简单地说,就是模拟出的CPU核心数.比如,可以通过一个CPU核心数模拟出2线程的

进程、应用程序域、线程的相互关系

4.1 跨AppDomain的线程 线程存在于进程当中,它在不同的时刻可以运行于多个不同的AppDomain当中.它是进程中的基本执行单元,在进程入口执行的第一个线程被视为这个进程的主线程.在.NET应用程序中,都是以Main()方法作为入口的,当调用此方法时 系统就会自动创建一个主线程.线程主要是由CPU寄存器.调用栈和线程本地存储器(Thread Local Storage,TLS)组成的.CPU寄存器主要记录当前所执行线程的状态,调用栈主要用于维护线程所调用到的内存与数据,TLS主要用于存

Java线程与Linux内核线程的映射关系(转)

Java线程与Linux内核线程的映射关系 Java线程与Linux内核线程的映射关系Linux从内核2.6开始使用NPTL (Native POSIX Thread Library)支持,但这时线程本质上还轻量级进程. Java里的线程是由JVM来管理的,它如何对应到操作系统的线程是由JVM的实现来确定的.Linux 2.6上的HotSpot使用了NPTL机制,JVM线程跟内核轻量级进程有一一对应的关系.线程的调度完全交给了操作系统内核,当然jvm还保留一些策略足以影响到其内部的线程调度,举个