Jus*_*Sid 3 objective-c memory-fences grand-central-dispatch
当我通过dispatch_async或类似的任何队列运行块时,GCD是否在块调用周围提供线程围栏?我认为它确实如此,但据我所知,文档没有提供任何方式的提示.
从Cocoa-Dev邮件列表上的电子邮件帖子中,Greg Parker(Apple的运行时工程师之一)回答了我的一个问题:
[S]使用GCD并没有给我们所有人带来灾难,我认为dispatch_async()等确实提供了这样的内存障碍.同样,NSOperationQueue,-performSelector:onThread:...等也必须.是对的吗?
我希望任何不能为某些用途提供足够内存屏障的多处理原语会大声记录这个事实.dispatch_once()的存储是缺失障碍的一个记录示例.一些OSAtomic功能是另一个例子.但几乎所有重量都应该为任何客户提供完整的内存屏障.
| 归档时间: |
|
| 查看次数: |
392 次 |
| 最近记录: |