iOS中AFNetworking的实现分析

1.AFN进行数据请求会开辟多条线程吗?

线程开辟情况

1)这里在operation队列中设置了最大并发数是1,让所有网络请求和等待网络响应都在同一条线程,而不是为每一条网络请求都新建一个线程,这样会节约很多资源。

2)+ (NSURLSession*)sessionWithConfiguration:(NSURLSessionConfiguration*)configuration delegate:(nullable id)delegate delegateQueue:(nullable NSOperationQueue*)queue;

这个方法的英文解释:

queue:An operation queue for scheduling the delegate calls and completion handlers. The queue should be a serial queue, in order to ensure the correct ordering of callbacks. If nil, the session creates a serial operation queue for performing all delegate method calls and completion handler calls.

session的这个方法中queue并发数是1,保证了处理请求的正确顺序。

2.使用AFN之后需要在回调后如果操作UI,需要回到主线程进行操作吗?

不需要,AFN内部已经进行了处理。下边是我们AFN的源码。

回到主线程

你可能感兴趣的:(iOS中AFNetworking的实现分析)