gcd 简单介绍


// 每一个应用只有一个主线程
// 所有UI的更新工作,都必须在主线程上执行!
dispatch_queue_t q = dispatch_get_main_queue();

// 全局队列与并行队列的区别
// 1. 不需创建,直接获取就能用
// 2. 两个队列的执行效果相同
// 3. 全局队列没有名称,调试时,无法确认准确队列

// 全局队列, 多线程优先级反转,低优先级会阻塞高优先级线程。推荐使用 <span style="font-family: Arial, Helvetica, sans-serif;">DISPATCH_QUEUE_PRIORITY_DEFAULT 。</span>
dispatch_queue_t q =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// 串行队列,用得很少。同步里面嵌套同步,会造成线程阻塞。
dispatch_queue_t q = dispatch_queue_create("cn.glx.gcdserial", DISPATCH_QUEUE_SERIAL);
// 并行队列
dispatch_queue_t q = dispatch_queue_create("cn.glx.gcd", DISPATCH_QUEUE_CONCURRENT);
// 使用队列
dispatch_sync(q, ^{
	NSLog(@"%@", [NSThread currentThread]);
});



你可能感兴趣的:(ios,gcd)