Concurrency and Application Design (一)

在计算机发展的早期,单位工做时间的最高限额是一台计算机能够执行经过CPU的时钟速度肯定。可是,随着技术的进步和处理器设计变得更紧凑,热等物理约束开始限制处理器的最高时钟速度。所以,芯片制造商寻找其它的方法来提升其芯片的总体性能。该解决方案是它们增长每一个芯片上的处理器核的数量。经过增长核的数量,在单个芯片能够在不增长CPU速度或改变每秒执行更多的指令芯片尺寸和热特性。惟一的问题是如何利用其余核。

并发

脱离线程异步

 

虽然线程已经存在了不少年,继续有其用途,他们不解决在一个可扩展的方式执行多个任务的广泛问题。使用线程,建立一个可扩展解决办法落在了开发者的身上。你必须决定建立多少线程而且根据系统变化动态调整数量。另外一个问题是,你的应用程序承担大多数建立和维护线程须要的成本。而不是依赖于线程,Mac OS X和iOS采起异步设计方法来解决并发问题。异步函数已经存在于操做系统多年,并常常用于可能须要至关长时间的任务,例如从磁盘读取数据。在过去,若是一个异步函数,你想要作什么,根本不存在,你会写你本身的异步函数,并建立本身的线程。但如今,Mac OS X和iOS提供技术能够异步执行任何任务,而无需本身管理线程。函数

其中一个启动异步任务的技术就是GCG Grand Central Dispatch.这个技术将你一般会写到的线程管理代码移动到系统级别。你须要作的只是定义想执行的任务并把他添加到一个合适的分发队列中去。GCD负责建立须要的线程并将你的任务列入到这些线程中去。由于线程管理如今已是系统的一部分,GCD为任务管理和执行提供总体的方法比传统线程更有效率。性能

执行队列是一些objective-c对象很是像分发队列。你定义好任务而后将他们添加到执行队列中,像gcd,执行队列operation queues掌握全部的线程管理,确保任务执行的又快又有效率。spa

下面就介绍一些关于分发队列,执行队列和一些其余相关异步技术。操作系统

相关文章
相关标签/搜索