GCD

串行队列和并行队列的区别是串行队列的最大并发量为1,若最大并发量为1,async会自动转成barrier_async执行。

sync任务会通过线程私有信号量堵塞在当前线程,等待任务执行。又因为串行队列需要等待队列前面任务结束后执行下一个任务,若sync写在串行队列的其他任务内部 就会导致死锁。如:

queue.async { queue.sync {} }

queue.sync { queue.sync {} }

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

推荐阅读更多精彩内容