我正在学习iOS的并发编程.到目前为止,我已经读过NSOperation/NSOperationQueue和GCD.使用NSOperationQueueover 的原因是什么GCD,反之亦然?
听起来像是两者,GCD并从用户那里NSOperationQueue抽象出明确的创造NSThreads.然而这两种方法之间的关系对我来说并不清楚,所以任何反馈都要赞赏!
concurrency nsoperation nsoperationqueue grand-central-dispatch ios
Apple的Grand Central Dispatch参考文献称:
"......如果你的应用程序需要在系统的Unix级别运行 - 例如,如果它需要操作文件描述符,Mach端口,信号或定时器.GCD不仅限于系统级应用程序,而是在你之前将它用于更高级别的应用程序时,您应该考虑Cocoa中提供的类似功能(通过NSOperation和块对象)是否更易于使用或更适合您的需求."
对于高级应用程序,我实际上无法想到这种情况,其中GCD的使用是强制性的,并且可以/不应该使用NSOperation.
有什么想法吗?
concurrency objective-c grand-central-dispatch ios objective-c-blocks
有时我必须在主线程上做一些事情,建议将代码放在OperationQueue.main.addOperation。
其他时候,建议在其中编写代码DispatchQueue.main.async。
两者之间有什么区别?
(有一个类似的问题标题,但是内容不匹配。)
concurrency ×2
ios ×2
asynchronous ×1
nsoperation ×1
objective-c ×1
operation ×1
queue ×1
swift ×1