ios-面试程序员

ios--AFNetworking中关于线程并发问题

2019-11-25  本文已影响0人  简鱼7819

1,问题:AFNetworking发出post/get/put请求回调线程的问题

AFNetworking在处理block回调时已经做了,dispatch_get_main_queue(),直接回到主线程处理我们逻辑。

请求失败回调

失败

请求成功回调

测试打印线程[NSThread currentThread]

但是经测试,如果主线程被阻塞,AFNetworking的回调是无法相应的,此时要在你的处理回调处,调用dispatch_get_main_queue()重新回到主线程

dispatch_async(dispatch_get_main_queue(), ^{

    //你的block回调

})

2,问题:AFNetworking请求线程中最多并发数

AFNetworking中默认的NSOperationQueue最大并发数是1,那么就说明我们发出同时多条请求时,AFNetworking中的队列NSOperationQueue是串行执行的。

最大并发数是1 的优点:

1),所有的网络请求和网络相应都在同一个线程,不是每个请求都新建一个线程,节约资源。

2),并发数是1,能够保证处理请求的正确顺序

上一篇 下一篇

猜你喜欢

热点阅读