0

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

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

根据我的阅读,操作是更高级别的应用程序进程/任务管理。NSOperationQueue 可以处理操作资源和并发。

我不明白的是Operation可以直接在线程中运行,我对这个概念不太清楚。我不想明确操作和线程之间的区别。

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

非常感谢大家。

4

1 回答 1

2

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

于 2009-06-22T21:30:53.030 回答