Pet*_*isu 3 multithreading cocoa-touch objective-c ios afnetworking
我正在使用 AFNetworking 3.0,它使用NSURLSessionDataTask了一个 operationQueue(属性AFURLSessionManager),它用作NSURLSession
所以简单地说
AFURLSessionManager.operationQueue == NSURLSession.delegateQueue
AFNetworking 3 代码
self.operationQueue = [[NSOperationQueue alloc] init];
self.operationQueue.maxConcurrentOperationCount = 1;
self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:self.operationQueue];
Run Code Online (Sandbox Code Playgroud)
来自苹果文档。到 NSURLSession 委托队列
用于调度委托调用和完成处理程序的操作队列。该队列不必是串行队列。如果为零,会话将创建一个串行操作队列,用于执行所有委托方法调用和完成处理程序调用。
设置self.operationQueue.maxConcurrentOperationCount = 4;意味着会有最大值。4 同时处理NSURLSessionDataTask? 并将其设置为 = 1(AFNetworking 的默认值)意味着当时只有一项任务,并且必须完成另一项任务才能开始?
或者我错了,这只会影响委托消息传递,这意味着将其设置为 4 可以在 4 个不同的线程上触发委托回调......而设置为 1 意味着回调始终在同一线程上,但是无论如何,任务都是并发处理的
该队列是委托队列,因此它应该只影响委托消息传递。
当你创建一个时,NSURLSession你给它一个类型的配置对象NSURLSessionConfiguration。
NSURLSessionConfiguration 包括一个属性HTTPMaximumConnectionsPerHost,可让您控制到单个主机的同时连接数。这是我所知道的唯一一种可以让您控制连接数的机制。
| 归档时间: |
|
| 查看次数: |
1723 次 |
| 最近记录: |