Обновление курса RxJava. Урок 6

Новости сайта
Ответить
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Обновление курса RxJava. Урок 6

Сообщение damager82 » 26 янв 2017, 10:46

Вышел новый урок для курса RxJava
http://startandroid.ru/ru/courses/rxjava.html

Урок 6. subcribeOn и observeOn.
В этом уроке рассмотрим, как работает RxJava с точки зрения потоков и научимся управлять потоками с помощью операторов subscribeOn и observeOn.

На сайте также есть курс по Dagger 2
http://startandroid.ru/ru/courses/dagger-2.html

В этом курсе всего 4 урока, но он практически полностью раскрывает тему.

Click here to read this article!
Последний раз редактировалось damager82 26 янв 2017, 10:47, всего редактировалось 1 раз.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

zTrap
Сообщения: 1
Зарегистрирован: 27 янв 2017, 09:56

Re: Обновление курса RxJava. Урок 6

Сообщение zTrap » 27 янв 2017, 10:03

В данном уроке рассказано что в RxJava есть потоки для работы с сетью и диском, так же для вычислений. Вопрос вот в чем: эти потоки заточены под свои типизировные задачи, или же это просто логическое разделение для удобства?

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Обновление курса RxJava. Урок 6

Сообщение damager82 » 28 янв 2017, 01:07

Отличный вопрос, спасибо! Я дополнил урок следующим текстом.


Насколько я понял, почитав различные источники, есть ощутимая разница между io и computation шедулерами.

io - может содержать сколько угодно потоков, и предполагается, что задачи выполняемые в этих потоках не будут серьезно загружать процессор. Если все потоки заняты, то под каждую новую задачу просто выделяется новый поток.

computation - максимальное число потоков ограничено количеством ядер процессора. Если все потоки заняты, то новые задачи помещаются в очередь.

Т.е. если вы IO-операции будете выполнять в computation шедулере, то получите ограничение по количеству потоков и ваши операции будут выстраиваться в очередь. При одновременной загрузке большого количества файлов из сети это может существенно снизить общую скорость загрузки.

А если вы вычислительные операции, которые сильно грузят процессор, будете выполнять в io шедулере, вы получите множество очень загруженных потоков, что может отрицательно сказаться на общей производительности.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

Ответить