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