dispatch_barrier_async一些用法
来源:互联网 发布:安庆网络问政平台2017 编辑:程序博客网 时间:2024/05/21 11:28
- (NSDictionary *)HTTPRequestHeaders { NSDictionary __block *value; dispatch_sync(self.requestHeaderModificationQueue, ^{ value = [NSDictionary dictionaryWithDictionary:self.mutableHTTPRequestHeaders]; }); return value;}- (void)setValue:(NSString *)valueforHTTPHeaderField:(NSString *)field{ dispatch_barrier_async(self.requestHeaderModificationQueue, ^{ [self.mutableHTTPRequestHeaders setValue:value forKey:field]; });}- (NSString *)valueForHTTPHeaderField:(NSString *)field { NSString __block *value; dispatch_sync(self.requestHeaderModificationQueue, ^{ value = [self.mutableHTTPRequestHeaders valueForKey:field]; }); return value;}
1、在AFNetworking中,dispatch_barrier_async用来保证写线程的安全性,;以上面self.mutableHTTPRequestHeader 为例,通过<span style="font-family: Arial, Helvetica, sans-serif;">dispatch_barrier_async,能保证每次写</span><span style="font-family: Arial, Helvetica, sans-serif;">self.mutableHTTPRequestHeader时,没有线程在读</span><span style="font-family: Arial, Helvetica, sans-serif;">self.mutableHTTPRequestHeader;同时,写入</span><span style="font-family: Arial, Helvetica, sans-serif;">self.mutableHTTPRequestHeader时是在子线程中写的</span>
<span style="font-family: Arial, Helvetica, sans-serif;"></span>
<span style="font-family:Arial, Helvetica, sans-serif;">2、</span><span style="font-family: Arial, Helvetica, sans-serif;">self.requestHeaderModificationQueue是一个并发队列,</span><span style="font-family: Arial, Helvetica, sans-serif;">dispatch_sync(self.requestHeaderModificationQueue, 实现多线程读取同一个变量,又能保证同步获取到数据</span>
0 0
- dispatch_barrier_async一些用法
- dispatch_barrier_async
- dispatch_barrier_async
- dispatch_barrier_async
- dispatch_barrier_async
- dispatch_barrier_async函数
- dispatch_barrier_async函数
- GCD-dispatch_barrier_async
- GCD之五:dispatch_barrier_async
- GCD学习(五) dispatch_barrier_async
- dispatch_barrier_async的使用
- GCD学习(五) dispatch_barrier_async
- GCD学习 dispatch_barrier_async
- dispatch_barrier_async的作用是什么?
- dispatch_barrier_async 隐藏的坑
- GCD学习(五) dispatch_barrier_async
- GCD 之 dispatch_barrier_async
- iOS 多线程: dispatch_barrier_async
- android入门:zxing学习笔记(二)
- Vigenère 密码题解
- SparkSQL读取数据源
- Android开发用Service+Broadcast解决倒计时过程中Activity被销毁的问题
- JAVA 比较两个日期相差的天数
- dispatch_barrier_async一些用法
- MySQL连接方式
- 让eclipse读取ftl格式的文件
- 栈区和堆区内存分配区别
- 同步VS异步 阻塞VS非阻塞
- C++ 编程题练习(9-2)
- javaScript基础知识
- Python实现mapreduce程序
- 安装node-sass遇到的各种各样的问题及解决