所以我正在阅读 Facebook 很棒的AsyncDisplayKit源代码。具体来说,我正在阅读ASDealloc2MainObject背后的实现。一件事引起了我的注意。
在_AS-objc-internal.h的第 423 到 424 行中,程序员将一些任务分派到主队列中。
dispatch_barrier_async_f(dispatch_get_main_queue(), self, \
_objc_deallocOnMainThreadHelper); \
与其他调度屏障函数的情况一样,屏障逻辑dispatch_barrier_async_f()
仅在处理自定义并发队列时才有意义。对于全局并发队列和主队列,它的作用就像dispatch_async_f()
屏障不起作用一样。
那么为什么在这里使用屏障呢?