본문 바로가기
[RxJava] #5 스케줄러 5.1. 스케줄러 개념 배우기 -스케줄러는 스레드를 지정할 수 있게 해준다.단순히 새로운 스레드를 생성하거나 기존의 Executors 를 활용하는 것을 넘어 새로운 방식으로 우리를 맞이한다.그동안 어렵게 다루어야 했던 비동기 프로그래밍이 간결한 코드로 다시 태어난다. -String[] objs = {“1-S”, “2-T”, “3-P”}; Observable source = Observable.fromArray(objs) .doOnNext(data -> Log.v(“Original data = “ + data)) .subscribeOn(Schedulers.newThread()) // 발행부터의 thread 지정 .observeOn(Schedulers.newThread()) // 불리는 순간부터의 threa.. 2019. 6. 7.
[RxJava] #1 리액티브 프로그래밍 소개 -RxJava 라이브러리는 1.x 버전을 거쳐 2016년 10월에 점면 개편된 RxJava 2.0 을 출시. 1.1. 리액티브 프로그래밍 -리액티브 프로그래밍은 데이터 흐름과 전달에 관한 프로그래밍 패러다임.명령형(imperative) 프로그래밍은 주로 컴퓨터 하드웨어를 대상으로 프로그래머가 작성한 코드가 정해진 절차에 따라 순서대로 실행된다.그러나 리액티브 프로그래밍은 데이터 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관되는 함수나 수식이 업데이트되는 방식. -명령형 프로그래밍 방식은 변경이 발생했다는 통지를 받아서 자료를 다시 가져오는 pull 방식이지만, 리액티브 프로그래밍은 데이터 소스가 변경된 데이터를 함께 주는 push 방식이다.일종의 옵저버 패턴이다. -리액티브 프로그래밍은 1990년대에.. 2019. 5. 31.
Efficient Android Threading #5 기본 스레드의 생명주기 관리 Efficient Android Threading #5 기본 스레드의 생명주기 관리 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용.7.1. 기본 사항 ** 7.1.1. 생명주기 -스레드는 다음의 생명 주기를 갖는다. 생성 : 스레드를 생성한 스레드와 동일한 우선순위로 할당된다.실행 : start() 가 호출될 때 실행 환경이 설정되고 실행될 준비가 된다. 이후 스케줄러가 이 스레드를 선택하면 run 메서드가 호출된다.차단/대기 : sleep(), yield() 등이 수행되었을 때이다.종료 : run 메서드가 종료된 상태이다. 최종상태에며 Thread 인스턴스나 실행 환경은 재사용 할 수 없다. ** 7.1.2. 인터럽트 -.. 2018. 3. 21.
[android] RxAndroid 맛보기 [android] RxAndroid 맛보기 http://www.vogella.com/tutorials/RxJava/article.htmlhttps://code.tutsplus.com/tutorials/getting-started-with-reactivex-on-android--cms-24387https://realm.io/kr/news/rxandroid/ -Observable.just() 는 Observable 을 생성한다.이렇게 생성된 Observable 에 subscribe 가 붙으면 곧바로 just() 에 전달된 녀석이 onNext() 로 전달된다.List list = Arrays.asList(“Android”, “Ubuntu”, “Mac OS”);Observable listObservable = .. 2018. 3. 10.
[Effective Objective-C] #43 GCD 가 필요한 때와 작업 큐가 필요한 때를 구분해서 알아두라 [Effective Objective-C] #43 GCD 가 필요한 때와 작업 큐가 필요한 때를 구분해서 알아두라 출처 : Effective Objective-C -GCD 는 환상적인 기술이지만 표준 시스템 라이브러리의 일부분인 도구들을 사용하는 것이 더 좋을 때가 있다.언제 그런 도구를 사용해야 하는지 반드시 알고 있어야 한다.도구를 잘못 사용하면 유지 보수하기 어려운 코드가 되기 쉽기 때문이다. -백그라운드로 일을 수행하는 최선의 방법이 항상 GCD 를 사용하는 것이 아니다.관련 있는 기술이지만 별개인 NSOperationQueue 는 선택적으로 병렬로 동작하는 큐 관련 작업을 할 수 있게 한다.(NSOperation 의 하위 클래스) -알아야 할 첫 번째 차이점은 GCD 는 순정 C API 라는 것.. 2017. 10. 8.
[Effective Java] 스레드 스케쥴러에 의존하지 말자 [Effective Java] 스레드 스케쥴러에 의존하지 말자 - 많은 스레드가 runnable 상태일 때는 어떤 스레드를 실행시킬 것인지, 그리고 얼마 동안 실행시킬 것인지를 스레드 스케쥴러가 결정한다. 운영체제에서는 공정하게 그런 결정을 내리려고 하겠지만, 그 정책은 서로 다를 수 있다. 따라서 잘 작성한 프로그램은 그런 정책의 상세한 내용에 매달려서는 안 된다. 정확성이나 성능을 스레드 스케줄러에 의존하는 프로그램이라면 그 어떤 것도 이식성이 없어질 가능성이 크다. - 강력하고, 응답성이 좋고, 이식성이 있는 프로그램을 작성하는 가장 좋은 방법은, runnable 상태의 평균 스레드 개수가 프로세서의 개수보다 그리 크지 않게 하는 것이다. 이렇게 하면 스레드 스케줄러는 선택의 여지 없이 runnab.. 2017. 3. 17.
반응형