GCD是否创建线程总结

首先同步函数不具备开启线程的能力,无论是什么队列都不会开启线程;异步函数具备开启线程的能力,开启几条线程由队列决定(串行队列只会开启一条新的线程,并发队列会开启多条线程)

同步函数dispatch_sync

(1)并发队列:不会开线程

(2)串行队列:不会开线程

异步函数 dispatch_async

(1)并发队列:能开启N条线程

(2)串行队列:开启1条线程

注意:异步不一定开线程的理解
1.在串行队列Q的任务A里异步将任务B追加到队列Q中,此时任务B和任务A在一个线程,不开线程。
2.若任务 B 追加的线程已存在,比如 main 线程,则不会开线程,而是使用线程。

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