GCD中的串行队列

//串行队列

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

});

}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容