OPERATION 2

[iOS] 스레드(Thread) 사용법 & Tips

Thread 대용 Thread는 concurrency를 지원하는 방법 중 상대적으로 low-level이며 복잡한 방법이다. thread를 사용할 때 설계에 만전을 기하지 않는다면 동기화와 타이밍 문제에 직면하게 될 것이다. 또 thread를 굳이 써야할 정도의 task인지를 확실하게 정의해야 한다. thread는 CPU와 메모리에 어마어마한 overhead를 부여하게된다. 굳이 이런 overhead를 감내할 필요가 없다면 아래 설명하는 thread의 대용품들을 사용하자. -Operation objects NSOperation & NSOperationQueue -Grand Central Dispatch (GCD) Grand Central Dispatch -Idle-time notifications NSNo..

[iOS] NSOperation과 NSOperationQueue 개념과 사용

비동기적 프로세싱을 위해서 iOS 플랫폼에서 GCD 디스패치를 주로 사용하게 된다. GCD는 개발자에게 복잡한 스케줄링 혹은 논리 구조로부터 해방시켜준다. 특히 Block Coding을 이용하여 단순 구현을 쉽게 만들어준다. 하지만 보다 복잡한 로직의 구현과 코드 재사용성을 높히기를 원한다면 NSOperation과 NSOperationQueue를 사용하면 좋다. NSOperation은 GCD처럼 비동기적 프로세싱을 위해서 안성맞춤이다. 대표적인 비동기 로직으로 네트워크나 파일I/O 등 엑세스 시간이 긴 작업들이 있다. 앞서 말한 비동기 로직을 처리할 때, 사용하면 된다. NSOperation NSOperation의 구현은 마치 Java의 Thread 구현과 비슷하다. 먼저 알아두어야할 것은 NSOpera..