GCD中的串行队列

2016-07-03  本文已影响0人  143db5b5572a

//串行队列

- (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);

});

}

串行队列中的任务都是按顺序执行  谁在前就先执行谁 主线程和子线程平等 一样谁在前选执行谁 执行完一个才会执行下一个任务

上一篇 下一篇

猜你喜欢

热点阅读