首页 > 其他 > 详细

dispatch_async & dispatch_sync

时间:2014-03-13 07:02:39      阅读:418      评论:0      收藏:0      [点我收藏+]

Clear that!

 

dispatch_async 是将block发送到指定线程去执行,当前线程不会等待,会继续向下执行。

dispatch_sync 也是将block发送到指定的线程去执行,但是当前的线程会阻塞,等待block在指定线程执行完成后才会继续向下执行。

 

所以为什么 dispatch_sync 使用不当时,容易对当前线程造成死锁就容易分析了~

 

dispatch_sync 和 dispatch_async 将block加入到指定线程中后,指定线程都是串行执行的,既FIFO。 所以说 dispatch_sync(queue, ^{}); 这句代码还是有意义的~ 会阻塞当前线程等待queue中的所有任务执行完成后再向下执行。

 

不过暂时俺还没有碰到有必要使用 dispatch_sync 的地方, 看了网上说的 “数据库需要并发I/O的时候dispatch_sync” ,还是不大了解是什么个场景~ 期待大神点拨。。。

dispatch_async & dispatch_sync,布布扣,bubuko.com

dispatch_async & dispatch_sync

原文:http://www.cnblogs.com/zhuocheng/p/3596474.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!