Run Loops
A run loop is a piece of infrastructure used to manage events arriving asynchronously on a thread. A run loop
works by monitoring one or more event sources for the thread. As events arrive, the system wakes up the
thread and dispatches the events to the run loop, which then dispatches them to the handlers you specify. If
no events are present and ready to be handled, the run loop puts the thread to sleep.
You are not required to use a run loop with any threads you create but doing so can provide a better experience
for the user. Run loops make it possible to create long-lived threads that use a minimal amount of resources.
Because a run loop puts its thread to sleep when there is nothing to do, it eliminates the need for polling,
which wastes CPU cycles and prevents the processor itself from sleeping and saving power.
To configure a run loop, all you have to do is launch your thread, get a reference to the run loop object, install
your event handlers, and tell the run loop to run. The infrastructure provided by both Cocoa and Carbon
handles the configuration of the main thread’s run loop for you automatically. If you plan to create long-lived
secondary threads, however, you must configure the run loop for those threads yourself.
- 大小: 115.2 KB
分享到:
相关推荐
iOS Runloop官方文档翻译.Run loops 是线程相关的的基础框架的一部分。一个 run loop 就是一个事件处理 的循环,用来不停的调度工作以及处理输入事件。使用 run loop 的目的是让你的线 程在有工作的时候忙于工作,...
在iOS开发中,Run Loop是操作系统管理应用程序执行流程的核心机制,它确保了程序可以在等待事件时保持低功耗状态,并且能对用户交互做出及时响应。本文将详细讲解iOS Run Loop的概念、工作原理以及测试用例,以帮助...
- **RUNLOOPS**:深入解析RUNLOOPS的工作原理及其在多线程环境下的使用。 - **线程同步**:探讨不同类型的同步机制以及它们的成本和性能考虑。 - **线程安全设计**:提供实用的设计技巧以确保代码在多线程环境中运行...
线程支持涉及多个方面,例如线程包、RunLoops、同步工具和线程间通信等。 在设计多线程应用时,有几个关键技巧需要考虑。例如,应当避免显式创建线程,而应使用系统提供的线程池来管理线程的生命周期;保持线程合理...
本书主要围绕iOS平台的多线程技术,详细介绍其概念、线程管理、Run Loops以及线程同步等多个方面。 在第一章“关于多线程编程”中,首先向读者解释了什么是多线程,即在单个应用中能够并发执行多个代码路径的技术。...
“Run Loops” 提供有关如何管理在辅助线程中的循环事件处理的信息。 “同步(Synchronization)” 介绍同步问题和你可以用于阻止多线程破坏你 的数据或者导致你程序崩溃的工具。 “线程安全总结” 提供了 ...
- **RunLoops**:是线程管理的重要组成部分,负责调度线程的执行。 - **同步工具**:包括锁、信号量等机制,用于解决线程间的竞争问题。 - **线程间通信**:通过消息传递等方式实现不同线程之间的数据交换。 - **...
理解RunLoops的工作原理以及如何合理利用它们来避免卡顿和提高性能,是每个iOS开发者必须掌握的基础知识。例如,通过设置RunLoop模式和观察者,可以精确控制NSTimer和CADisplayLink等定时器的执行,避免不必要的计算...
在介绍线程支持方面,文档中提到了线程包(Thread Package)、RunLoops和同步工具。线程包是指创建和管理线程的接口,比如NSThread,它允许开发者手动创建和控制线程的生命周期。RunLoop是一个事件循环,用于处理...
- **RunLoops**: 一种机制,用于管理线程上的事件循环,使得线程能够响应外部事件。 - **同步工具**: 如锁、信号量等,用于保护共享资源免受并发访问的影响。 - **线程间通信**: 使用消息传递等方式实现线程之间的...
Run Loops是iOS应用中用于处理异步事件的循环。在主线程中,Run Loop负责更新用户界面,响应输入事件等。在后台线程,Run Loop可以用来处理定时任务或执行长时间运行的任务,直到收到停止信号。 #### 8. 与POSIX...
- **RUNLOOPS**:深入探讨RunLoop的工作机制及其在多线程中的应用。 - **线程同步**:讲解同步工具的使用,如锁、条件变量等,并讨论同步的成本与性能。 #### 关于多线程编程 ##### 1.1 什么是多线程 多线程是指...
RUNLOOPS章节介绍了RunLoop的内部结构,包括RunLoop模式和输入源。RUNLOOP对象用于配置、启动和退出RunLoop,以及配置源对象,如自定义输入源、定时源和基于端口的输入源。 附录A总结了Cocoa框架中的线程安全实践,...
运行循环(Run Loops)是iOS中处理事件的一种机制,它使得线程可以处理事件和回调。文档在运行循环部分详细介绍了运行循环的结构、模式、输入源、定时源、运行循环观察者等内容,并且解释了何时以及如何在应用程序中...
文档内容覆盖了线程的定义、线程支持、线程包、运行循环(Run Loops)、同步工具以及线程间通信等方面。 首先,文档介绍了什么是线程,阐述了线程的基本概念和术语。线程是一种并发执行路径,它能够让多个执行线程...