본문 바로가기
Efficient Android Threading #12 로더를 이용한 자동 백그라운드 실행 Efficient Android Threading #12 로더를 이용한 자동 백그라운드 실행 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용. -로더(Loader) 프레임워크는 콘텐트 프로바이더 또는 다른 데이터 소스에 대해 비동기 작업을 실행하기 위한 강력한 방법을 제공한다.콘텐츠가 변하거나 데이터 소스에 추가될 때 로더 프레임워크는 비동기적으로 데이터를 불러오고 앱으로 전달할 수 있다.API Level 11(허니콤)에서 추가되었다. Loader 는 액티비티 또는 프래그먼트와 연결하는 것이 가능하다. 콘텐트 프로바이더에 연결하는 경우 CursorLoader 를 사용하면 되고,다른 데이터 소스의 경우 커스텀 로더 객체로 구현.. 2018. 3. 28.
Efficient Android Threading #2 스레드 통신 Efficient Android Threading #2 스레드 통신 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용. 4.1. 파이프 -파이프는 두 개의 연결된 스레드끼리만 접근할 수 있는 메모리에 할당된 버퍼다.두 개의 스레드 이외의 다른 스레드는 데이터에 접근할 수 없다.따라서 스레드 안전이 보장된다.파이프는 단방향이기 때문에 한 스레드는 쓰기만 하고 다른 하나는 읽기만 한다. 일반적으로 파이프는 두 개의 긴 실행 테스크가 있고 하나의 테스크에서 다른 테스크로 계속해서 데이터를 옮길 때 사용된다. -파이프는 바이너리 데이터와 문자 데이터 중 하나를 전송할 수 있다.PipedOutputStream(생산자)와 PipedInp.. 2018. 3. 18.
[Java Concurrency] 스레드 풀 활용 [Java Concurrency] 스레드 풀 활용 8.1. 작업과 실행 정책 간의 보이지 않는 연결 관계 - 일정한 조건을 갖춘 실행 정책이 필요한 작업에는 다음과 같은 것들이 있다. 의존성이 있는 작업 스레드 한정 기법을 사용하는 작업 응답 시간이 민감한 작업 ThreadLocal 을 사용하는 작업 - 스레드 풀은 동일하고 서로 독립적인 다수의 작업을 실행할 때 가장 효과적이다. - 특정 작업을 실행하고자 할 때 그에 맞는 실행 정책을 요구하는 경우도 있고, 특정 실행 정책 아래에서는 실행되지 않는 경우도 있다. 다른 작업에 의존성이 있는 작업을 실행해야 할 때는 스레드 풀의 크기를 충분히 크게 잡아서 작업이 큐에서 대기하거나 등록되지 못하는 상황이 없도록 해야 한다. 스레드 한정 기법을 사용하는 작업.. 2017. 4. 27.
[Java Concurrency] 중단 및 종료 #2 [Java Concurrency] 중단 및 종료 #2 7.3. 비정상적인 스레드 종료 상황 처리 - 스레드를 예상치 못하게 종료시키는 가장 큰 원인은 바로 RuntimeException 이다. RuntimeException 은 대부분 프로그램이 잘못 짜여져서 발생하거나 기타 회복 불가능의 문제점을 나타내는 경우가 많기 때문에 try_catch 구문으로 잡지 못하는 경우가 많다. RuntimeException 은 호출 스택을 따라 상위로 전달되기보다는 현재 실행되는 시점에서 콘솔에 스택 호출 추적 내용을 출력하고 해당 스레드를 종료시키도록 되어 있다. - 스레드 풀에서 사용하는 작업용 스레드나 스윙의 이벤트 처리 스레드와 같은 작업 처리용 스레드는 항상 Runnable 등의 인터페이스를 통해 남이 정의하고.. 2017. 4. 26.
[Effective Java] 복구 가능 상황에서는 checked 예외를 사용하고, 런타임 예외는 프로그램 에러에 사용하자. 복구 가능 상황에서는 checked 예외를 사용하고, 런타임 예외는 프로그램 에러에 사용하자. - 자바 언어는 다음 세 종류의 예외를 던질 수 있다. checked exception, runtime exception, error - 메소드 호출자가 당연히 예외 복구를 할 수 있는 상황에서는 checked 예외를 사용하자. checked 예외를 던지면 그 메소드 호출자가 catch 문에서 예외를 처리하거나 또는 외부로 넘겨야 한다. API 사용자가 checked 예외와 만났다는 것은, 그런 상황을 복구하라는 지시를 그 API 설계자로부터 받은 것이다. - unchecked exception 인 runtime exception 과 error 는 catch 할 필요가 없고, 일반적으로 catch 해서도 안 된.. 2017. 2. 21.
@NotNull annotation 의 장점 @NotNull annotation 의 장점 http://robaustin.wikidot.com/annotations-and-notnullhttps://www.jetbrains.com/idea/documentation/howto.html - Find Bugs 와 IntelliJ 는 null check annotation 을 지원한다. 코드 가독성 측면에서 좋지 않다는 이야기도 있지만, 그건 케바케. - function 의 param 에 null 이 들어오면 RuntimeException 을 던지도록 처리하는 것이 좋다.public void testMethodNotNull( @NotNull String param ){ // do sth.}만약 method 선언부에 @NotNull 을 선언하면, valida.. 2015. 6. 23.
반응형