調度組範例
//實例化調度組
dispatch_group_t group = daspatch_group_greate();
//創建隊列
dispatch_queue_t queue = dispatch_get_glabal_queue(0,0);
//任務加入
dispatch_group_async(group, queue, ^{
NSLog(@"A任務---%@", [NSThread currentThread]);
});
dispatch_group_async(group, queue, ^{
NSLog(@"B任務---%@", [NSThread currentThread]);
});
dispatch_group_async(group, queue, ^{
NSLog(@"C任務---%@", [NSThread currentThread]);
});
//獲得調度組內的任務完成後的通知,這個通知可以跨隊列通信.
//比如這個通知是要更新UI的話,就把它放到主隊列裏執行就可以了。
dispatch_group_notify(group, queue, ^{
NSLog(@"ABC任務均已完成。");
});
延遲執行範例:
dispatch_time_t when = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0*NSEC_PER_SEC));
dispatch_after(when, dispatch_get_main_queue(), ^{
NSLog(@"123");
});
一次性執行範例:
-(void)once
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSLog(@"該部分即使調用多次只會執行一次");
}
NSLog(@"該部分多次調用多次執行");
}