在計算機發展的早期,單位工做時間的最高限額是一臺計算機能夠執行經過CPU的時鐘速度肯定。可是,隨着技術的進步和處理器設計變得更緊湊,熱等物理約束開始限制處理器的最高時鐘速度。所以,芯片製造商尋找其它的方法來提升其芯片的總體性能。該解決方案是它們增長每一個芯片上的處理器核的數量。經過增長核的數量,在單個芯片能夠在不增長CPU速度或改變每秒執行更多的指令芯片尺寸和熱特性。惟一的問題是如何利用其餘核。
併發
脫離線程異步
雖然線程已經存在了不少年,繼續有其用途,他們不解決在一個可擴展的方式執行多個任務的廣泛問題。使用線程,建立一個可擴展解決辦法落在了開發者的身上。你必須決定建立多少線程而且根據系統變化動態調整數量。另外一個問題是,你的應用程序承擔大多數建立和維護線程須要的成本。而不是依賴於線程,Mac OS X和iOS採起異步設計方法來解決併發問題。異步函數已經存在於操做系統多年,並常常用於可能須要至關長時間的任務,例如從磁盤讀取數據。在過去,若是一個異步函數,你想要作什麼,根本不存在,你會寫你本身的異步函數,並建立本身的線程。但如今,Mac OS X和iOS提供技術能夠異步執行任何任務,而無需本身管理線程。函數
其中一個啓動異步任務的技術就是GCG Grand Central Dispatch.這個技術將你一般會寫到的線程管理代碼移動到系統級別。你須要作的只是定義想執行的任務並把他添加到一個合適的分發隊列中去。GCD負責建立須要的線程並將你的任務列入到這些線程中去。由於線程管理如今已是系統的一部分,GCD爲任務管理和執行提供總體的方法比傳統線程更有效率。性能
執行隊列是一些objective-c對象很是像分發隊列。你定義好任務而後將他們添加到執行隊列中,像gcd,執行隊列operation queues掌握全部的線程管理,確保任務執行的又快又有效率。spa
下面就介紹一些關於分發隊列,執行隊列和一些其餘相關異步技術。操作系統