본문 바로가기
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] #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] 중단 및 종료 #1 - 작업이나 스레드를 안전하고 빠르고 안정적으로 멈추게 하는 것은 어려운 일이다. 더군다나 자바에는 스레드가 작업을 실행하고 있을 때 강제로 멈추도록 하는 방법이 없다. 대신 인터럽트(interrupt)라는 방법을 사용할 수 있게 되어 있는데, 인터럽트는 특정 스레드에게 작업을 멈춰달라고 요청하는 형태이다. 실제 상황에서 특정 스레드나 서비스를 "즉시" 멈춰야 할 경우는 거의 없고, 강제로 종료하면 공유되어 있는 여러 가지 상태가 비정상적인 상태에 놓일 수 있기 때문에 스레드 간의 협력을 통한 접근 방법이 올바르다. 다시 말해, 작업이나 서비스를 실행하는 부분의 코드를 작성할 때 멈춰달라는 요청을 받으면 진행 중이던 작업을 모두 정리한 다음 종료하도록.. 2017. 4. 25.
[Java Concurrency] 작업 실행 [Java Concurrency] 작업 실행 - 앱이 해야 할 일을 "작업"이라는 단위로 분할하면 프로그램의 구조를 간결하게 잡을 수 있고, 트랜잭션의 범위를 지정함으로써 오류에 효과적으로 대응할 수 있고, 작업 실행 부분의 병렬성을 자연스럽게 극대화 할 수 있다. 6.1. 스레드에서 작업 실행 - 프로그램에서 일어나는 일을 작업이라는 단위로 재구성하고자 한다면 가장 먼저 해야 할 일은 작업의 범위를 어디까지로 할 것인지 정하는 일이다. 원론적으로 보자면 작업은 완전히 독립적인 동작을 말한다. 독립성이 갖춰져 있어야 병렬성을 보장할 수 있다. 작업을 스케쥴링하거나 부하 분산(load balancing)을 하고자 할 때 폭넓은 유연성을 얻으려면 각 작업이 앱의 전체적인 업무 내용 가운데 충분히 작은 부분을.. 2017. 4. 24.
[Java Concurrency] 구성 단위 #2 [Java Concurrency] 구성 단위 #2 5.4. 블로킹 메소드, 인터럽터블 메소드 - 스레드는 여러 가지 원인에 의해 블록 당하거나, 멈춰질 수 있다. 스레드가 블록되면 동작이 멈춰진 다음 블록된 상태(BLOCKED, WAITING, TIMED_WAITING) 가운데 하나를 갖게 된다. 블로킹 연산은 단순히 실행 시간이 오래 걸리는 일반 연산과는 달리 멈춘 상태에서 특정한 신호를 받아야 계속해서 실행할 수 있는 연산을 말한다. ( I/O 작업 끝나기를 기다리거나, 기다리던 락을 확보하거나, 다른 스레드의 작업 결과를 받아오는 등의 신호 ) - Thread 클래스는 해당 스레드를 중단시킬 수 있도록 interrupt 메소드를 제공하며, 해당 스레드에 인터럽트가 걸려 중단된 상태인지를 확인할 수 .. 2017. 4. 21.
[iOS Study] 웹 서비스와 UIWebView [iOS Study] 웹 서비스와 UIWebView 출처 : 아론 힐리가스의 iOS 프로그래밍 -NSURL URL 포맷에 웹 프로그램의 위치를 담고 있다. URL 은 여러 웹 서비스를 위해 기본 주소, 통신하고 있는 웹 프로그램, 전달 인자로 구성된다. https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/ -NSURLRequest 웹 서버와 통신할 때 필요한 모든 데이터를 가진다. NSURL 객체와 캐시 정책, 웹 서버의 응답 제한 시간, HTTP 프로토콜을 통해 전달되는 추가 데이터 등을 가진다. NSMutableURLRequest 는 NSURLRequest 의 변경 가능한 .. 2016. 3. 15.
[iOS Study] UIGestureRecognizer 와 UIMenuController [iOS Study] UIGestureRecognizer 와 UIMenuController 출처 : 아론 힐리가스의 iOS 프로그래밍 -때때로 핀치나 스와이프와 같은 제스처를 만들기 위해 특정 패턴의 터치를 감지해야 한다.이 때 UIGestureRecognizer 인스턴스를 사용할 수 있다. -UIGestureRecognizer 는 뷰의 방식에 따라 처리되는 터치를 가로챈다. UIGestureRecognizer 가 특정 제스처를 인식하면 선택한 객체에 메시지를 보낸다. -UIGestureRecognizer 자체는 인스턴스를 만들 수 없다.대신에 UIGestureRecognizer 는 많은 하위 클래스를 가지며 그 각각은 특정 제스처를 인식하는 역할을 한다. UIGestureRecognizer 하위 클래스.. 2016. 2. 25.
[종로/회식] 이춘복 참치 - 참치 무한리필 솔찍 후기!! [종로/회식] 이춘복 참치 - 참치 무한리필 솔찍 후기!! 2015. 11. 25. (수) #파트 회식을 함.참치 항상 노래를 부르던 큐뮌쓰의 의견에 따라 참치 먹으러 감. #원래 행선지는 종각역쪽의 "참치 공방" 그러나 만석으로 실패...우리 파트가 4명이라 예약 안 하고 다녀도 회식에 무리가 없을 거라 생각했는데 아닌가봉가 ㅠㅠ #그래서 2차 행선지로 이춘복 참치로 향한다.이 곳도 처음 도착했을 때 거의 만석으로 북적북적.. 그러나 운 좋게도 누군가 예약해놓고 cancel 했는지,세팅이 딱 되어있는 자리로 안내받아 간다. 나이스!! #우리는 "실장 추천 참치" 라고 하는 1인당 35,000원 하는 메뉴로 선택!!! #무한 리필인데 중간에 "실장" 이라는 사람이 와서꽤 괜찮은 접시 하나를 제공하면서 설.. 2016. 1. 24.
갓텐 스시 with 철사마부부 오늘은 철사마 부부(진) 과 함께 갔던 갓덴스시에 대해 간단히 써볼까 한다. 철사마는 2015년 4월에 결혼을 했는데, 처음에 나한테 사회를 부탁하며 둘이 와서 나에게 밥을 사주었다. 처음에는 철사마가 돼지고기가 먹고 싶은지 보쌈이나 삼겹살을 먹으러 가자고 했는데, 어찌저찌하다보니 결국 스시를 먹으러 간다. 간 곳은 갓덴스시. 원래는 회전초밥을 먹으려 했으나, 저녁 조금 늦게 갔는데도 홀이 가득 차 있는 관계로 방으로 안내를 받아 가게 된다. 메뉴판에서 연어세트, 참치세트 등을 주문하는데 각 세트는 3p 또는 5p 로 구성되어 있었다. 철사마 부부가 사준 관계로 나는 가격에 대한 개념을 많이 챙기며 먹지는 않았지만, 개인적으로 가격에 비해 꽤나 퀄리티도 좋고 꽤나 맛이 있었다. 세명이서 먹고 약 7~8만.. 2015. 5. 19.
반응형