简单来说,dispatch
source是一个监视某些类型事件的对象。当这些事件发生时,它自动将一个block放入一个dispatch queue的执行例程中。
这个听起来与NSRunloop比较类似,但二者本质上是不同的,dispatch
source是针对一个队列的,至于队列使用哪个线程执行这个task,则取决于队列的线程池状态;NSRunloop则是完全与指定线程绑定的。另外,二者虽然都是接受事件做出反应,但NSRunloop接收到事件后就resume线程,通过继续执行后续代码来完成task;而dispatch
source则是执行指定的block(显得更高大上);当然,NSRunloop是线程不安全的(CFRunLoop是线程安全的),而dispatch
source则完全可以靠queue来保证线程安全。
dispatch source浅析(一)概述,布布扣,bubuko.com
dispatch source浅析(一)概述
原文:http://www.cnblogs.com/ccbo/p/3684758.html