GCD編程的核心就是dispatch隊列,dispatch block的執行最終都會放進某個隊列中去進行,它類似NSOperationQueue但更復雜也更強大,並且可以嵌套使用。所以說,結合block實現的GCD,把函數閉包(Closure)的特性發揮得淋漓盡致。 dispatch隊列 ...
dispatch源 dispatch source 和RunLoop源概念上有些類似的地方,而且使用起來更簡單。要很好地理解dispatch源,其實把它看成一種特別的生產消費模式。dispatch源好比生產的數據,當有新數據時,會自動在dispatch指定的隊列 即消費隊列 上運行相應地block,生產和消費同步是dispatch源會自動管理的。 dispatch源的使用基本為以下步驟: . di ...
2013-09-10 21:11 2 9138 推薦指數:
GCD編程的核心就是dispatch隊列,dispatch block的執行最終都會放進某個隊列中去進行,它類似NSOperationQueue但更復雜也更強大,並且可以嵌套使用。所以說,結合block實現的GCD,把函數閉包(Closure)的特性發揮得淋漓盡致。 dispatch隊列 ...
談起iOS的dispatch(正式稱謂是Grand Central Dispatch或GCD),不得不說這又是iOS(包括MacOSX)平台的創新,優缺點這里不討論,只有當你使用時才能真正體會到。我們說dispatch函數的主要目的是實現多任務並發代碼,那么要理解dispatch函數,先來 ...
GCD提供兩種方式支持dispatch隊列同步,即dispatch組和信號量。 一、dispatch組(dispatch group) 1. 創建dispatch組 dispatch_group_t group = dispatch_group_create(); 2. 啟動 ...
對於多線程的開發,iOS系統提供了多種不同的接口,先談談iOS多線程最基礎方面的使用。產生線程的方式姑且分兩類,一類是顯式調用,另一類是隱式調用。 一、顯示調用的類為NSThread。一般構造NSThread的線程對象可通過兩種方式: 1. 初始化線程主方法: [NSThread ...
iOS平台提供更高級的並發(異步)調用接口,讓你可以集中精力去設計需完成的任務代碼,避免去寫與程序邏輯無關的線程生成、運行等管理代碼。當然實質上是這些接口隱含生成線程和管理線程的運行,從而更加簡潔地實現多線程。下面先來研究NSOperation和NSOperationQueue類的使用 ...
談到線程同步,一般指如何對線程間共享數據的同步讀寫,如何避免混亂的讀寫結果。一個基本的解決辦法就是使用鎖(LOCK)。 iOS提供多種同步鎖的類和方法,這里介紹下基本用法。 1. NSLock:最基本的同步鎖,使用lock來獲得鎖,unlock釋放鎖。如果其它線程已經使用lock ...
理解run loop后,才能徹底理解NSTimer的實現原理,也就是說NSTimer實際上依賴run loop實現的。 先看看NSTimer的兩個常用方法: + (NSTimer *)timerW ...