1)我们为什么要使用NSOperationQueue
?
2)使用它时有什么好处?
3)我们可以同时通过NSOperationQueue
实现多个同步网络操作吗?
4)为什么我们在NSOperationQueue
的延迟加载中使用UITableView
?如果没有NSOperationQueue
,是不可能做到的?
答案 0 :(得分:10)
我们为什么要使用NSOperationQueue?
当工作单元是NSOperationQueue
或其子类之一时,您应该使用NSOperation
来实现并发。或者使用需要NSOperationQueue
的其他API,例如addObserverForName:object:queue:usingBlock:
NSNotificationCenter
方法
使用它时有什么好处?
当异步执行的工作单元可以封装在NSOperation
对象中时。也许您在问其他异步API的优势是什么?在很大程度上,但并非完全是,您需要的抽象级别问题,并且对管理感到满意。作为one author put it:“始终使用可用的最高级别抽象,并在测量显示需要时将其下拉到较低级别的抽象。”
我们可以同时通过NSOperationQueue实现多个同步网络操作吗?
当然。查看大量有关此主题的在线教程。像可贵的马库斯·扎拉那样this one。
为什么我们在Tableview的延迟加载中使用NSOperationQueue?
出于与使用任何并发技术相同的原因。使工作更快和/或避免阻止UI。在您引用的情况下,主要是关于不使用长时间运行的任务阻止UI。
如果没有NSOperationQueue,是不是可以做到?
当然有可能。 NSThread
,GCD等