10

저는 GCD와 스레딩에있어서 매우 새로운입니다. 나는 튜토리얼을 읽고 매우 많은 혼란을 겪었다. 어떤 사람은 사전에 .. 애플 개발자 링크를 제안하지 않는 간단한 words.Please에발송 대기열과 NSOperationQueue의 차이점

감사를 설명 할 수!

+0

음이 경우 내가 제안 할 수 SO 링크 : ... 여기에 당신이 그들에게 도움이되기를 바랍니다 ... http://stackoverflow.com/questions/7078658/operation-queue-vs-dispatch-queue-for-ios -application http://stackoverflow.com/questions/10373331/nsoperation-vs-grand-central-dispatch http://stackoverflow.com/questions/11676629/ios-dispatch-async-vs-nsoperationqueue 그리고 두 개의 외부 링크 : - http://maniacdev.com/2010/03/easier-threading-with-nsoperation-for-better-performance http://blog.spec-india.com/difference-between-nsthread-and-nsoperation – IronManGill

답변

13

NSOperationQueue 취소하거나 복잡한 종속성이해야 할 수도 있습니다 장기 실행 작업에 더 적합 할 수있다. 최소한의 성능과 메모리 오버 헤드를 가져야하는 짧은 작업에는 GCD 디스패치 대기열이 더 좋습니다.

이는 (지금까지의 동작은이를 지원 등) NSOperationQueue에 대기열 된 동작을 취소 할 수있다. GCD 디스패치 큐에 블록을 대기열에 넣으면 어떤 시점에서 블록이 실행됩니다.

아래 링크를 확인하시면 도움이 될 것입니다.

Operation Queue vs Dispatch Queue for iOS Application

+0

내가 가진 [이] (http://stackoverflow.com/questions/3762200/how-to-keep-an-iphone-app-running-on-backgroundfullyeoperational/17554514#17554514)의 백그라운드 프로세스에 대한 귀하의 답변을 보았습니다. . 오랫동안 레코더 응용 프로그램을 실행해야합니다. 올바른 방법으로 알려주십시오. – Valli

1

GCDNSOperationQueue보다, 그것의 가장 큰 장점은 구현이 매우 가벼운 무게 및 잠금이없는 알고리즘과 성능에 초점을 맞추고 있다는 점이다 낮은 수준이다.

는 일반적으로, 당신은 당신의 요구에 맞는 추상화의 최고 수준을 사용해야합니다. 즉, 일반적으로 GCD 대신 NSOperationQueue을 사용해야합니다. NSOperationQueue을 사용하면 작업 실행 방법을보다 강력하게 제어 할 수 있습니다.

+0

감사합니다. 플라이 .. 나는 머리 무게 이상의 다른 자습서를 기반으로하는 동안 GCD를 사용하는 것이 더 편리하다고 들었어. – Valli