GCD中的Dispatch_barrier_async和串行队列,它们之间有什么区别?

平乐

我发现dispatch_barrier_async的工作机制是仅在先前添加到队列中的所有块完成后才执行。它的工作方式与串行队列相似。

因此,我不区分GCD中这两种运行模式之间的区别。

在此处输入图片说明

rmaddy

dispatch_barrier_[a]sync旨在与并发队列一起使用。它们也应与对的调用一起使用dispatch_[a]sync

常见用法是“多读者,一位作者”模式。您设置并发队列。对于“阅读器”块,请使用dispatch_[a]sync对于“ writer”块,请使用dispatch_barrier_[a]sync

此设置允许同时读取,但一次只允许一名作家,而在写入过程中则不允许读取。

将此与串行队列进行比较,在串行队列中一次只能发生一个块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

GCD主队列和主线程有什么区别?

performSelectorOnMainThread:和主队列上的dispatch_async()有什么区别?

串行队列上的dispatch_async和dispatch_sync之间的区别?

DISPATCH_QUEUE_CONCURRENT和全局并发调度队列之间有什么区别

dispatch_barrier_async如何与目标队列交互?

Java中默认和生成的串行版本uid之间有什么区别?

什么是Leaflet和Mapbox,它们之间有什么区别?

什么是OLTP和OLAP。它们之间有什么区别?

dispatch和bindActionCreators之间有什么区别?

Swift 3中的dispatch_barrier_async等效项

什么是IO端口,串行端口,它们之间有什么区别?

C中的翻译环境和执行环境是什么,它们之间有什么区别?

GCD中的线程和队列之间有什么关系?

Julia中的Array {Bool}和BitArray有什么区别,它们之间有何关系?

GCD中的.userInitiated和.userInteractive有什么区别?

Redux中间件中的dispatch和next之间有什么区别?

iOS开发中“线程”和“队列”之间有什么区别?

Java队列中的add和offer方法之间有什么区别?

如果没有ARC,我是否需要在dispatch_barrier_async中的Block_release dispatch_block_t

iOS GCD:全局队列和具有后台优先级(DISPATCH_QUEUE_PRIORITY_BACKGROUND)的全局队列之间的区别?

std::__gcd 和 std::gcd 有什么区别?

dart中的async和async *有什么区别?

Dart中的async和async *有什么区别?

Tensorflow 和 Bert 它们究竟是什么,它们之间有什么区别?

MVC中的'public async Task <IActionResult>'和'public ActionResult'之间有什么区别

线性化和可串行化之间有什么区别?

在超级账本结构中,安装和实例化链码的真正含义是什么?它们之间有什么区别?

“ COM”,“ USB”,“串行端口”之间有什么区别?

“”和“之间有什么区别?” 和“!” 在Swift中?