Вышел новый урок для курса 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!
Обновление курса RxJava. Урок 6
Обновление курса RxJava. Урок 6
Последний раз редактировалось damager82 26 янв 2017, 10:47, всего редактировалось 1 раз.
Re: Обновление курса RxJava. Урок 6
В данном уроке рассказано что в RxJava есть потоки для работы с сетью и диском, так же для вычислений. Вопрос вот в чем: эти потоки заточены под свои типизировные задачи, или же это просто логическое разделение для удобства?
Re: Обновление курса RxJava. Урок 6
Отличный вопрос, спасибо! Я дополнил урок следующим текстом.
Насколько я понял, почитав различные источники, есть ощутимая разница между io и computation шедулерами.
io - может содержать сколько угодно потоков, и предполагается, что задачи выполняемые в этих потоках не будут серьезно загружать процессор. Если все потоки заняты, то под каждую новую задачу просто выделяется новый поток.
computation - максимальное число потоков ограничено количеством ядер процессора. Если все потоки заняты, то новые задачи помещаются в очередь.
Т.е. если вы IO-операции будете выполнять в computation шедулере, то получите ограничение по количеству потоков и ваши операции будут выстраиваться в очередь. При одновременной загрузке большого количества файлов из сети это может существенно снизить общую скорость загрузки.
А если вы вычислительные операции, которые сильно грузят процессор, будете выполнять в io шедулере, вы получите множество очень загруженных потоков, что может отрицательно сказаться на общей производительности.
Насколько я понял, почитав различные источники, есть ощутимая разница между io и computation шедулерами.
io - может содержать сколько угодно потоков, и предполагается, что задачи выполняемые в этих потоках не будут серьезно загружать процессор. Если все потоки заняты, то под каждую новую задачу просто выделяется новый поток.
computation - максимальное число потоков ограничено количеством ядер процессора. Если все потоки заняты, то новые задачи помещаются в очередь.
Т.е. если вы IO-операции будете выполнять в computation шедулере, то получите ограничение по количеству потоков и ваши операции будут выстраиваться в очередь. При одновременной загрузке большого количества файлов из сети это может существенно снизить общую скорость загрузки.
А если вы вычислительные операции, которые сильно грузят процессор, будете выполнять в io шедулере, вы получите множество очень загруженных потоков, что может отрицательно сказаться на общей производительности.
-
- Сообщения: 56
- Зарегистрирован: 05 ноя 2021, 17:31
Re: Обновление курса RxJava. Урок 6
Very impressive, To start my feedback i would like to congratulate your team for giving us this source of knowledge and we are freely to connect with you too. Please have a sweet day by reading this, 바카라사이트 게임