화장실열쇠의 딜레마
Objective-C에서의 멀티스레드 활용
2015. 3. 21
About me
東京勤務 / プログラマ、iOS アプリ開発、下町居酒屋が好き。
iOS研究会(KJ-Code)の活動をやってます。
blog: http://dolfalf.tistory.com/
스레드는 어떤경우 사용할까?
• 시간이 오래걸리는 작업일 경우
• 동시에 여러작업을 처리하고 싶을경우
• 상태를 계속 감시해야 할 핸들러가 필요할 경우
• 기타....
그럼 Objective-C에서 스레드를 어떻
게 만들까?
• NSThread
• NSOperation
• GCD
• performSelector
• Timer..
스레드를 활용하기전
알아야할 기초지식
동기처리, 비동기처리
• 비동기 디자인패턴
• 딜리게이트(delegate), 셀렉터(@selector), 블록
(block), 노티피케이션(Notification)
• GCD
• dispatch_sync(...), dispatch_async(...)
큐(Queue)
• 직렬큐(serial Queue)
• 동시큐(Concurrent Queue)
데드락(Dead Lock)
교착상태
데드락(Dead Lock)
• 멀티스레드에서 가장 shit!한 상태
• 교착상태라고도 함
배타적제어
배타적 데이타 접근방식
• 크리티컬섹션(임계영역)
• 뮤텍스, 세마포어, 인터락…
이제까지의 이야기를 Ojbective-C 코
드로 구현한다면?
• @preperty(atomic, …
• @synchronized (self) { … }
• NSLock* _lock;
• dispatch_semaphore_t _semaphore;
Demo
• http://dolfalf.tistory.com/145
… 생략합니다. 제 블로그를 봐주세요.
잘못된 내용이 있으면 알려주세요.

Objective-C에서 멀티스레드 사용하기