본문 바로가기
Rx

Observable -7 (fromCallable함수)

by 봄석 2018. 12. 23.


본 내용은 필자가 학습한 내용을 정리하는 내용입니다.

대부분 의 내용이 아래 책의 내용이므로 원서를 구매해서 직접보시는걸 추천드립니다!

RxJava 프로그래밍 리액티브 프로그래밍 기초부터 RxAndroid까지 한 번에

유동환 , 박정준 지음 | 한빛미디어 | 2017년 09월 04일 출간

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788968488658&orderClick=LAV&Kc=


 Observable의 팩토리 함수 구분

팩토리함수 

함수 

RxJava 1.x의 기본 팩토리 함수 

create(),just(),from() 

RxJava 2.x의 기본 팩토리 함수  

fromArray(),fromlterable(),fromCallable(),fromFuture(),

fromPublisher() 

기타 팩토리 함수 

interval(),range(),timer(),defer() 



fromCallable()함수

RxJava는 비동기 프로그래밍을 하기위한 라이브러리 이다.

이번에는 기존 자바 에서 제공하는 비동기 클래스나 인터페이스와 연동을 처리해본다.


Java 5에 추가된 동시성 API인 Callable인터페이스로, 비동기 실행 후 결과를 반환하는 call()메소드를 정의한다.

public interface Callable<V>{
    /*
    *결과를 계산하고 ,만약 그렇게 할 수 없을 경우 예외를 던집니다.
    *
    *@return 계산된 결과값
    *@throws Exception 계산을 완료할 수 없을 때
    */
    V call() throws Exception;
}



run() 메소드가 있는 Runnable 인터페이스처럼 메소드가 하나고 ,인자가 없다는 점에서 비슷하지만, 실행 결과를 리턴한다는 점에서 차이가 있습니다. 또한 Executor 인터페이스의 인자로 활용되기 때문에 잠재적으로 다른 스레드에서 실행되는 것을 의미하기도 합니다.


fromCallable()함수 활용예

Callable<String> callable = ()->{
            Thread.sleep(1000);
            return "Hello Callable";
};
Observable<String> source=Observable.fromCallable(callable);
source.subscribe(System.out::println);


댓글