//串行队列
- (void)gcdDemo
{
// dispatch_queue_t q = dispatch_queue_create("zhang", DISPATCH_QUEUE_SERIAL);
dispatch_queue_tq =dispatch_queue_create("wan",NULL);
// #define DISPATCH_QUEUE_SERIAL NULL
// DISPATCH_QUEUE_SERIAL == NULL;
NSLog(@"%@", [NSThreadcurrentThread]);
// 2.异步任务async,能够开线程
//串行队列中,异步任务最多只能开一条线程,所有任务顺序执行!
//串行队列,异步任务,在多线程中,是斯坦福大学最推荐的一种多线程方式!
//优点:将任务放在其他线程中工作,每个任务顺序执行,便于调试
//缺点:并发能力不强,最多只能使用一条线程!for(inti =0; i <10; i++)
{
dispatch_async(q, ^{
NSLog(@"%@-- %d", [NSThreadcurrentThread], i);
});
}
// 2.同步任务sync(没用处)还是在主线程中执行
for(inti =0; i <10; i++) {
dispatch_sync(q, ^{
NSLog(@"%@---%d", [NSThreadcurrentThread], i);
});
}
串行队列中的任务都是按顺序执行 谁在前就先执行谁 主线程和子线程平等 一样谁在前选执行谁 执行完一个才会执行下一个任务
网友评论