线程成本-外军电台手册

时间:2024-06-27 16:33:57
【文件属性】:

文件名称:线程成本-外军电台手册

文件大小:1.39MB

文件格式:PDF

更新时间:2024-06-27 16:33:57

objective-c ios

第二章 线程管理 Mac OS X和 iOS里面的每个进程都是有一个或多个线程构成,每个线程都代表一 个代码的执行路径。每个应用程序启动时候都是一个线程,它执行程序的 main函数。 应用程序可以生成额外的线程,其中每个线程执行一个特定功能的代码。 当应用程序生成一个新的线程的时候,该线程变成应用程序进程空间内的一个实 体。每个线程都拥有它自己的执行堆栈,由内核调度独立的运行时间片。一个线程可 以和其他线程或其他进程通信,执行 I/O操作,甚至执行任何你想要它完成的任务。 因为它们处于相同的进程空间,所以一个独立应用程序里面的所有线程共享相同的虚 拟内存空间,并且具有和进程相同的访问权限。 本章提供了 Mac OS X 和 iOS 上面可用线程技术的预览,并给出了如何在你的应 用程序里面使用它们的例子。 注意:获取关于 Mac OS上面线程架构,或者更多关于线程的背景资料。请参阅技术说明 TN2028 --“线程架构”。 2.1 线程成本 多线程会占用你应用程序(和系统的)的内存使用和性能方面的资源。每个线程都 需要分配一定的内核内存和应用程序内存空间的内存。管理你的线程和协调其调度所 需的核心数据结构存储在使用 Wired Memory 的内核里面。你线程的堆栈空间和每个 线程的数据都被存储在你应用程序的内存空间里面。这些数据结构里面的大部分都是 当你首次创建线程或者进程的时候被创建和初始化的,它们所需的代价成本很高,因 为需要和内核交互。 表 2-1量化了在你应用程序创建一个新的用户级线程所需的大致成本。这些成本 里面的部分是可配置的,比如为辅助线程分配堆栈空间的大小。创建一个线程所需的 时间成本是粗略估计的,仅用于当互相比较的时候。线程创建时间很大程度依赖于处 理器的负载,计算速度,和可用的系统和程序空间。 Table 2-1 Thread creation costs Item Approximate cost Notes Kernel data structures Approximately 1 KB This memory is used to store the thread data structures and attributes, much of which is allocated as wired memory and therefore cannot be


网友评论