문제

저는 Objective-C를 배우고 있고 비디오 처리 애플리케이션을 개발할 예정입니다.

Apple에 대한 개발자 가이드를 읽고 있는데 Operation 개체를 만났습니다.작업과 스레드의 차이점, 단점, 장점, 사용 사례에 대한 설명이 필요합니다.

내가 읽은 바에 따르면 운영은 더 높은 수준의 신청 프로세스/작업 관리입니다.NSOperationQueue는 작업 리소스와 동시성을 처리할 수 있습니다.

내가 이해하지 못하는 것은 Operation이 스레드에서 직접 실행될 수 있다는 것입니다. 이 개념이 너무 명확하지 않습니다.나는 작업과 스레드의 차이점을 명확하게 설명하지 않습니다.

두 가지에 대해 가능한 한 많은 정보/배경을 제공해 주시기 바랍니다.

모두들 고마워요.

도움이 되었습니까?

해결책

차이점은 다음과 같습니다. NSOperation 스레드는 추상화 중 하나입니다.스레드는 코드의 여러 "스레드"를 동시에 실행하는 저수준(운영 체제 수준) 구성입니다.코코아가 제공하지만 NSThread API는 기본적으로 API의 래퍼입니다. pthreadAPI. NSOperation 실행하려는 작업의 상위 수준 추상화입니다. NSOperationQueue 대기열 실행을 예약합니다. NSOperations 사용 가능한 CPU를 최대한 활용합니다.멀티 코어 시스템에서는 여러 NSOperations 스레드 풀을 사용하여 동시에 실행됩니다. NSOperationQueue 유지합니다.이 상위 수준 API를 사용하면 작업을 예약하는 방법보다는 수행하려는 "작업"에 대해 생각할 수 있다는 장점이 있습니다.단점(따라서 사용의 장점) NSThread 직접적으로) 스레드의 스케줄링과 스레드와 다른 스레드 간의 통신을 더 많이 제어할 수 있다는 것입니다(참조: -[NSObject performSelector:withObject:onThread:]).비디오 처리와 같은 원자적 작업의 경우 NSOperation 가장 적합할 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top