#pragma mark -并行队列
- (void)gcdDemo2
{
// 1.并行队列
dispatch_queue_tq =dispatch_queue_create("myQueue",DISPATCH_QUEUE_CONCURRENT);
//非ARC中,需要自己释放队列
// dispatch_release(q);
// 3.同步任务,不会开启新的线程
//在实际开发中,同步任务可以保证执行完成之后,才让后续的异步任务开始执行,用于控制任务之间的先后顺序
//在后台线程中,处理“用户登录”
for(inti =0; i <10; i++) {
dispatch_sync(q, ^{
NSLog(@"%@ - %d", [NSThreadcurrentThread], i);
});
}
// 2.异步任务,会在多条线程上工作,具体开多少条线程,由系统决定
//仍然是按照任务添加到队列中的顺序被调度,只是执行先后可能会有差异!
// ***能够将耗时的操作,放到子线程中工作
// ***与串行队列异步任务相比,并发性能更好!但是执行的先后顺序,不固定
for(inti =0; i <10; i++) {
dispatch_async(q, ^{
NSLog(@"%@ - %d", [NSThreadcurrentThread], i);
});
}
}
网友评论