繁体   English   中英

可可中操作和线程之间的区别

[英]Difference between operations & threads in Cocoa

我正在学习Objective-C,我将开发一个视频处理应用程序。

我正在阅读有关Apple的开发人员指南,并且遇到了Operation对象。 我只需要澄清操作和线程,缺点,优点,用例之间的区别。

据我了解,操作是更高级别的应用程序流程/任务管理。 NSOperationQueue可以处理操作资源和并发性。

我不了解的是Operation可以直接在线程中运行,我对此概念不太清楚。 我不清楚操作和线程之间的区别。

请向我提供有关这两者的尽可能多的信息/背景。

非常感谢大家。

NSOperation和线程之间的区别是抽象之一。 线程是低级(操作系统级)结构,可同时执行多个“线程”代码。 尽管Cocoa提供了NSThread API,但它实际上是pthread s API的包装。 NSOperation是您希望执行的任务的高层抽象。 NSOperationQueue将安排执行NSOperations队列,以便最大程度地利用可用的CPU。 在多核系统上,将使用NSOperationQueue维护的线程池同时执行多个NSOperations 使用此更高级别的API的优点在于,它使您可以考虑要执行的“操作”,而不是如何安排它们。 缺点(以及直接使用NSThread的优点)在于,您可以更好地控制线程的调度以及该线程与其他线程之间的通信(请参见-[NSObject performSelector:withObject:onThread:] )。 对于原子任务,例如视频处理, NSOperation可能是最合适的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM