본문 바로가기
Efficient Android Threading #8 AsyncTask 로 백그라운드 태스크를 UI 스레드에 묶기 Efficient Android Threading #8 AsyncTask 로 백그라운드 태스크를 UI 스레드에 묶기 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용.10.1. 기본 사항 -AsyncTask 는 실행이 완료되면 다시 실행할 수 없다.즉, execute 메서드는 일회성의 동작이고 스레드의 동작처럼 AsyncTask 인스턴스마다 오직 한 번만 호출할 수 있다. -doInBackground 작업이 끝나면 onPostExecute 혹은 onCancelled 둘 중 하나만 수행된다. ** 10.1.1 생성과 시작 -AsyncTask 의 기본 생성자는 UI 스레드에서 호출되어야 한다.젤리빈 이전의 플랫폼에서 UI 스레드가.. 2018. 3. 24.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #41 ~ #48 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #41 ~ #48 출처 : Effective Objective-C #41 : 동기화에는 락보다는 디스패치 큐를 사용하라 동기화 문법을 제공하기 위해 디스패치 큐를 사용할 수 있다. 그리고 그냥 간단하게 @synchronized 블록이나 NSLock 객체를 이용해 동기화를 제공할 수도 있다. 동기화와 비동기화 디스패치를 함께 사용하는 것은 일반적인 락으로 하는 동기화와 동일한 기능을 제공할 수 있지만, 스레드에서 비동기 디스패치로 호출하면 잠금 없이 호출한다. 병렬 큐와 배리어 블록을 이용하면 동기화를 좀 더 효율적으로 할 수 있다. #42 : performSelector 메서드군보다는 .. 2017. 10. 16.
[Effective Objective-C] #43 GCD 가 필요한 때와 작업 큐가 필요한 때를 구분해서 알아두라 [Effective Objective-C] #43 GCD 가 필요한 때와 작업 큐가 필요한 때를 구분해서 알아두라 출처 : Effective Objective-C -GCD 는 환상적인 기술이지만 표준 시스템 라이브러리의 일부분인 도구들을 사용하는 것이 더 좋을 때가 있다.언제 그런 도구를 사용해야 하는지 반드시 알고 있어야 한다.도구를 잘못 사용하면 유지 보수하기 어려운 코드가 되기 쉽기 때문이다. -백그라운드로 일을 수행하는 최선의 방법이 항상 GCD 를 사용하는 것이 아니다.관련 있는 기술이지만 별개인 NSOperationQueue 는 선택적으로 병렬로 동작하는 큐 관련 작업을 할 수 있게 한다.(NSOperation 의 하위 클래스) -알아야 할 첫 번째 차이점은 GCD 는 순정 C API 라는 것.. 2017. 10. 8.
[Java Concurrency] 성능, 확장성 #1 [Java Concurrency] 성능, 확장성 - 스레드를 사용하는 가장 큰 목적은 바로 성능을 높이고자 하는 것이다. 스레드를 사용하면 시스템의 자원을 훨씬 효율적으로 활용할 수 있고, 앱으로 하여금 시스템이 갖고 있는 능력을 최대한 사용하게 할 수 있다. 그와 동시에 기존 작업이 실행되고 있는 동안 새로 등록된 작업을 즉시 실행할 수 있는 준비를 갖추고 있기 때문에 앱의 응답 속도를 향상시킬 수 있다. - 성능을 높이는 방법은 대부분 앱의 내부 구조를 복잡하게 만들어야 하는 경우가 많고, 따라서 안전성과 활동성에 문제가 생길 가능성도 적지 않다. 최악의 경우에는 성능을 높이기 위해 적용한 프로그래밍 기법 때문에 프로그램의 다른 부분에서 역효과를 가져오거나 성능상에 문제를 일으킬 수도 있다. - 성능.. 2017. 5. 3.
반응형