rx creating operators, observeon, subscribeon

27
Creating Operators 정경호 moltak

Upload: kyungho-jung

Post on 06-Jan-2017

149 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Rx Creating Operators, observeOn, subscribeOn

Creating Operators 정경호��moltak

Page 2: Rx Creating Operators, observeOn, subscribeOn

Creating Operators observeOn/subscribeOn

Practice

Page 3: Rx Creating Operators, observeOn, subscribeOn

초심으로�돌아가서…

화내지�말아주세요�ㅠ_ㅠ

Page 4: Rx Creating Operators, observeOn, subscribeOn

Creating Operators• Create

• Defer

• Empty/Never/Throw

• From

• Interval

• Just

• Range

• Repeat

• Start

• Timer

Page 5: Rx Creating Operators, observeOn, subscribeOn

https://github.com/gdgand/android-rxjava/tree/master/2016-06-22_operators_creating

Page 6: Rx Creating Operators, observeOn, subscribeOn

observeOn, subscribeOn

Observable�이�동작할�Scheduler�를�지정

해당�Observable�을�observe(관찰)�할�옵저버의��Scheduler를�지정http://reactivex.io/documentation/operators/observeon.html

http://reactivex.io/documentation/operators/subscribeon.html

Page 7: Rx Creating Operators, observeOn, subscribeOn

map 1 --> main subscribe --> main

observeOn

Page 8: Rx Creating Operators, observeOn, subscribeOn

observeOn

Page 9: Rx Creating Operators, observeOn, subscribeOn

map 1 --> main subscribe --> RxIoScheduler-2

observeOn

Page 10: Rx Creating Operators, observeOn, subscribeOn

observeOn

Page 11: Rx Creating Operators, observeOn, subscribeOn

map 1 --> main map 2 --> main subscribe --> RxIoScheduler-2

observeOn

Page 12: Rx Creating Operators, observeOn, subscribeOn

observeOn

Page 13: Rx Creating Operators, observeOn, subscribeOn

observeOn

Page 14: Rx Creating Operators, observeOn, subscribeOn

map 1 --> main map 2 --> RxIoScheduler-2 subscribe --> RxIoScheduler-2

observeOn

Page 15: Rx Creating Operators, observeOn, subscribeOn

• ObserveOn�

• Observer�(operator�혹은�subscriber)�의�observe(관찰,�혹은�동작)�스레드�지정�

• observeOn�이�호출�된�후�‘다시’�호출되기�전까지�유지됨.

observeOn

Page 16: Rx Creating Operators, observeOn, subscribeOn

동작되는�스레드를�아시겠나요?

observeOn

Page 17: Rx Creating Operators, observeOn, subscribeOn

map 1 --> main map 2 --> RxIoScheduler-2

map 3 --> RxNewThreadScheduler-3 subscribe --> RxNewThreadScheduler-3

observeOn

동작되는�스레드를�아시겠나요?

Page 18: Rx Creating Operators, observeOn, subscribeOn

subscribeOnmap 1 --> main subscribe --> main

Page 19: Rx Creating Operators, observeOn, subscribeOn

subscribeOn

Page 20: Rx Creating Operators, observeOn, subscribeOn

subscribeOn

map 1 --> RxIoScheduler-2 subscribe --> RxIoScheduler-2

Page 21: Rx Creating Operators, observeOn, subscribeOn

subscribeOn

무슨�의미일까…?

Page 22: Rx Creating Operators, observeOn, subscribeOn

subscribeOn

Page 23: Rx Creating Operators, observeOn, subscribeOn

subscribeOn

observable --> RxIoScheduler-2 map 1 --> RxIoScheduler-2

subscribe --> RxIoScheduler-2

Page 24: Rx Creating Operators, observeOn, subscribeOn

subscribeOn

observable --> RxIoScheduler-2 map 1 --> RxNewThreadScheduler-1

subscribe --> RxComputationScheduler-3

Page 25: Rx Creating Operators, observeOn, subscribeOn

• subscribeOn�

• Observable�의�데이터�emit�의�스레드를�지정.�

• 여러번�subscribeOn을�하더라도�최초에�호출한�스레드를�유지함.

subscribeOn

Page 26: Rx Creating Operators, observeOn, subscribeOn

“끝”�

Page 27: Rx Creating Operators, observeOn, subscribeOn

• http://goo.gl/ztz2as

• http://docs.couchbase.com/developer/java-2.0/observables.html

• http://reactivex.io/documentation/operators.html#creating

• https://github.com/ReactiveX/RxJava/wiki/Creating-Observables

• http://reactivex.io/documentation/contract.html

• http://reactivex.io/documentation/observable.html

• http://tomstechnicalblog.blogspot.kr/2016/02/rxjava-understanding-observeon-and.html

• http://reactivex.io/documentation/operators/observeon.html

• http://reactivex.io/documentation/operators/subscribeon.html

• https://github.com/square/retrofit/blob/d04f3a50e41ca01d22f370ac4f332f6ddf4ba9fe/retrofit-adapters/rxjava/src/main/java/retrofit2/adapter/rxjava/RxJavaCallAdapterFactory.java