GCD主隊列、全局隊列

主隊列專門負責在主線程上調度任務
主隊列執行同步任務造成死鎖
特點就是不允許開新線程,在這個隊列裏只能順序執行任務

把任務放到主線程執行:1、獲得主隊列。2、放進去執行。
dispatch_queue_t queue = dispatch_get_main_queue();
dispatch_async(queue, ^{
NSLog(@”%@ %d”, [NSThread currentThread], i);
});

主線程運行異步任務的時候,這個任務不會馬上執行,會把其他任務執行完後再執行異步任務


全局隊列是併發的;
全局隊列沒有名稱,普通的併發隊列有名稱
全局隊列供給所有應用程序共享
MRC中,普通的併發隊列要釋放,全局隊列不需要

獲得全局隊列(參數:1、優先級,保留參數;一般都是0)
dispatch_queue_t queue = dispatch_get_global_queue(long identifier, unsigned long flags);

示例代碼:
把耗時操作放在全局隊列異步執行(併發異步),在其中把更新UI放回到主線程執行。
dispatch_async(dispatch_get_global_queue(0,0), ^{
NSLog(@”耗時操作”);
dispatch_aspatch_async(dispatch_get_main_queue(), ^{
NSLog(@”更新UI”);
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章