目标C到Java:NSOperationQueue?

目标C到Java:NSOperationQueue?,java,objective-c,Java,Objective C,我试图理解C语言的目标代码,但我被困在这一行 代码: NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 我知道这一行构造了一个类的新实例NSOperationQueue。但是NSOperationQueue的这个实例做什么呢?谁能给我解释一下吗?由于我对Java比较熟悉,如果有人能向我推荐一段Java中的等效代码,那将非常有帮助。请看一看。基本上,它是一个设计用于执行多个NSOperation的类。这些线程与线程有些相似(它们

我试图理解C语言的目标代码,但我被困在这一行

代码:

NSOperationQueue *queue = [[NSOperationQueue alloc] init];
我知道这一行构造了一个类的新实例
NSOperationQueue
。但是
NSOperationQueue
的这个实例做什么呢?谁能给我解释一下吗?由于我对Java比较熟悉,如果有人能向我推荐一段Java中的等效代码,那将非常有帮助。

请看一看。基本上,它是一个设计用于执行多个
NSOperation
的类。这些线程与线程有些相似(它们由
NSOperationQueue
在后台线程中执行)


如果您需要更多详细信息,请阅读以下内容:
NSOperationQueue
实现了与Java中的
ThreadPoolExecutor
加上
BlockingQueue
基本相同的功能

也就是说,它需要一组
NSOperation
s(在Java中近似于
Runnables
s),然后异步执行


另外,操作队列会根据当前运行时条件调整自身。

无法将可运行文件配置为相互依赖,这是NSOperation的一项重要功能。用户可能必须编写自定义代码(可能使用Future.get()、BlockingQueue.take())才能达到相同的效果。

我不明白,是否要执行此操作
NSOperationQueue queue=new NSOperationQueue()?事实上,我试图了解NSOperationQueue在做什么,以及在Java中哪个是等效的函数。正如我所知,NSOperationQueue是在Objective C的库中定义的或类似的东西。它不是我编写的函数或方法。所以基本上这段代码定义了一个在后台运行的新线程?不完全是:它定义在后台线程中运行的抽象“操作”的“运行程序”。队列除了运行实际的操作之外什么也不做,而实际的工作是在实际操作中完成的。您还可以添加更复杂的行为,例如提供操作依赖项(必须在它们之前执行的其他操作)。@Bombastic-不一定是线程,操作队列可以并将在分布在可用CPU内核上的多个线程上并行运行其操作,以优化当前工作负载。如何处理
ThreadPoolExecutor
中任务之间的依赖关系?