Pergunta

Estou aprendendo Objective-C, I será o desenvolvimento de um aplicativo de processamento de vídeo.

Estou lendo o guia do desenvolvedor na maçã e eu corri para objetos de Operação. Eu só preciso de alguns esclarecimentos que a diferença entre as operações e tópicos, desvantagens, vantagens, casos de uso.

Pelo que li, a operação é mais alto nível de gerenciamento de processo / tarefa de aplicação. O NSOperationQueue pode lidar com recursos de operação e de concorrência.

O que eu não entendo é que a Operação pode ser executado diretamente em um segmento, eu não sou muito claro sobre este conceito. Eu não sou para limpar sobre a diferença entre operações e threads.

Por favor me fornecer o máximo de informações / base sobre os dois possível.

Muito obrigado a todos.

Foi útil?

Solução

A diferença entre NSOperation e tópicos é uma das abstração. Um segmento é um baixo nível (ao nível do sistema operativo) construo com o qual para executar múltiplos "threads" de código concorrentemente. Embora Cacau fornece a API NSThread, é essencialmente um wrapper sobre a API pthreads. NSOperation é uma abstração de nível mais alto de uma tarefa que você deseja executar. NSOperationQueue irá agendar a execução de uma fila de NSOperations, de modo a maximamente utilizar o CPU disponível (s). Em um sistema multi-core, múltiplos NSOperations será executado simultaneamente usando um pool de threads que NSOperationQueue mantém. A vantagem de usar este API de nível superior é que ele permite que você pensa sobre as "operações" que deseja realizar ao invés de como programá-los. A desvantagem (e, portanto, a vantagem de utilizar directamente NSThread) é que tem mais controlo sobre a programação da rosca e a comunicação entre o fio e outros segmentos (ver -[NSObject performSelector:withObject:onThread:]). Para tarefas atômicas, tais como processamento de vídeo, NSOperation é provavelmente o melhor ajuste.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top