【文件属性】:
文件名称:什么是多线程-外军电台手册
文件大小:1.39MB
文件格式:PDF
更新时间:2021-06-07 22:47:16
objective-c ios
第一章 关于多线程编程
多年来,计算机的最大性能主要受限于它的中心微处理器的速度。然而由于个别
处理器已经开始达到它的瓶颈限制,芯片制造商开始转向多核设计,让计算机具有了
同时执行多个任务的能力。尽管 Mac OS X利用了这些核心优势,在任何时候可以执
行系统相关的任务,但自己的应用程序也可以通过多线程方法利用这些优势。
1.1 什么是多线程
多线程是一个比较轻量级的方法来实现单个应用程序内多个代码执行路径。在系
统级别内,程序并排执行,系统分配到每个程序的执行时间是基于该程序的所需时间
和其他程序的所需时间来决定的。然而在每个应程序的内部,存在一个或多个执行线
程,它同时或在一个几乎同时发生的方式里执行不同的任务。系统本身管理这些执行
的线程,调度它们在可用的内核上运行,并在需要让其他线程执行的时候抢先打断它
们。
从技术角度来看,一个线程就是一个需要管理执行代码的内核级和应用级数据结
构组合。内核级结构协助调度线程事件,并抢占式调度一个线程到可用的内核之上。
应用级结构包括用于存储函数调用的调用堆栈和应用程序需要管理和操作线程属性
和状态的结构。
在非并发的应用程序,只有一个执行线程。该线程开始和结束于你应用程序的
main循环,一个个方法和函数的分支构成了你整个应用程序的所有行为。与此相反,
支持并发的应用程序开始可以在需要额外的执行路径时候创建一个或多个线程。每个
新的执行路径有它自己独立于应用程序 main 循环的定制开始循环。在应用程序中存
在多个线程提供了两个非常重要的的潜在优势:
多个线程可以提高应用程序的感知响应。
多个线程可以提高应用程序在多核系统上的实时性能。
如果你的应用程序只有单独的线程,那么该独立程序需要完成所有的事情。它必
须对事件作出响应,更新您的应用程序的窗口,并执行所有实现你应用程序行为需要
的计算。拥有单独线程的主要问题是在同一时间里面它只能执行一个任务。那么当你
的应用程序需要很长时间才能完成的时候会发生什么呢?当你的代码忙于计算你所