iOS - GCD 常用的一些東西

Grand Central Dispatch丝里,也就是“最牛逼的中樞調(diào)度器”

容易混淆的術語
#    有4個術語比較容易混淆:同步入客、異步技掏、并發(fā)澄暮、串行 #
    同步和異步主要影響:能不能開啟新的線程
    同步:只是在當前線程中執(zhí)行任務蝌以,不具備開啟新線程的能力
    異步:可以在新的線程中執(zhí)行任務糊啡,具備開啟新線程的能力
并發(fā)和串行主要影響:任務的執(zhí)行方式
    并發(fā):允許多個任務并發(fā)(同時)執(zhí)行(并不是用來并發(fā)就能開線程,得要使用了異步線程)
    串行:一個任務執(zhí)行完畢后豪娜,再執(zhí)行下一個任務
  • GCD中有2個核心乎折,搞來搞去永遠都是這兩個

    任務:執(zhí)行什么操作
    隊列:用來存放任務
    
  • 將任務添加到隊列中

    GCD會自動將隊列中的任務取出,放到對應的線程中執(zhí)行
    任務的取出遵循隊列的FIFO原則:先進先出侵歇,后進后出
    它會自動做操作,first in first out
    
    • GCD的隊列可以分為2大類型
      • 并發(fā)隊列(Concurrent Dispatch Queue)

        • 可以讓多個任務并發(fā)(同時)執(zhí)行(自動開啟多個線程同時執(zhí)行任務)
        • 并發(fā)功能只有在異步(dispatch_async)函數(shù)下才有效吓蘑。他們要合作才可以
      • 串行隊列(Serial Dispatch Queue)

      • 讓任務一個接著一個地執(zhí)行(一個任務執(zhí)行完畢后惕虑,再執(zhí)行下一個任務)

  • GCD中還有個用來執(zhí)行任務的函數(shù):
  dispatch_barrier_async(dispatch_queue_t queue, dispatch_block_t block);
  • 在前面的任務執(zhí)行結束后它才執(zhí)行,而且它后面的任務等它執(zhí)行完成之后才會執(zhí)行
  • 這個queue不能是全局的并發(fā)隊列
  • 延時執(zhí)行
    iOS常見的延時執(zhí)行調(diào)用NSObject的方法
[self performSelector:@selector(run) withObject:nil afterDelay:2.0];// 2秒后再調(diào)用self的run方法

使用GCD函數(shù)

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // 2秒后執(zhí)行這里的代碼... // 默認在主線程執(zhí)行磨镶,你也可以并發(fā)溃蔫,在子線程執(zhí)行});

使用NSTimer

[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(test) userInfo:nil repeats:NO];
  • 快速迭代
    使用dispatch_apply函數(shù)能進行快速迭代遍歷
dispatch_apply(10, dispatch_get_global_queue(0, 0), ^(size_t index){ 
// 執(zhí)行10次代碼,index順序不確定 
// 和for循環(huán)不同琳猫,不是有序的 
// 它是同時并發(fā)遍歷伟叛,一起做事情,快速遍歷迭代 
// 比如剪切圖片的例子
});

突然發(fā)現(xiàn)這個帖子寫的比較好直接推薦收藏,認真看里面有OC圖片合成 有OC文件剪切

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脐嫂,一起剝皮案震驚了整個濱河市统刮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌账千,老刑警劉巖侥蒙,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異匀奏,居然都是意外死亡鞭衩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來论衍,“玉大人植酥,你說我怎么就攤上這事」诔。” “怎么了秆麸?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捂人。 經(jīng)常有香客問我御雕,道長,這世上最難降的妖魔是什么滥搭? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任酸纲,我火速辦了婚禮,結果婚禮上瑟匆,老公的妹妹穿的比我還像新娘闽坡。我一直安慰自己,他們只是感情好愁溜,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布疾嗅。 她就那樣靜靜地躺著,像睡著了一般冕象。 火紅的嫁衣襯著肌膚如雪代承。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天渐扮,我揣著相機與錄音论悴,去河邊找鬼。 笑死墓律,一個胖子當著我的面吹牛膀估,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播耻讽,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼察纯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了针肥?” 一聲冷哼從身側響起饼记,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慰枕,沒想到半個月后握恳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡捺僻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年乡洼,在試婚紗的時候發(fā)現(xiàn)自己被綠了崇裁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡束昵,死狀恐怖拔稳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锹雏,我是刑警寧澤巴比,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站礁遵,受9級特大地震影響轻绞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜佣耐,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一政勃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兼砖,春花似錦奸远、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至耽梅,卻和暖如春薛窥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眼姐。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工诅迷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妥凳。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像答捕,于是被迫代替她去往敵國和親逝钥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容