1

Тема: Багатопоточність в Андроїді

Ще одне питання. Яким чином в Андроїді реалізована багатопоточніть? Чи якісне це рішення і чи добре воно працює?

2

Re: Багатопоточність в Андроїді

Хм..повна тиша. Чому так люди? Де ви усі?

3

Re: Багатопоточність в Андроїді

багатопоточність мало хто значить використовує

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

4

Re: Багатопоточність в Андроїді

Всі стандартні інструменти Java + Service, IntentService, AsyncTask а також найкращий підхід - RxJava. Рекомендую книги Asynchronous Android Programming, Java Concurrency in Practice та Reactive Programming with RxJava

Подякували: 0xDADA11C7, rainboww1988, Regen, Chemist-i4

5

Re: Багатопоточність в Андроїді

+1 RxJava

https://github.com/Froussios/Intro-To-RxJava
ось лінк на дуже корисну книжку/туторіали по RxJava 1.
Звісно RxJava 1 дещо застаріла ібо існує RxJava 2, але нічого кращого я не знайшов і, як на мене, маючи навички у RxJava 1 вам не має бути дуже важко перейти на RxJava 2.

P.S. для Андроїда є extension RxAndroid з додатковими Scheduler-ами і тп.

Don’t do as I have done
Win where I have lost
Have where I have none
Подякували: rainboww19881

6

Re: Багатопоточність в Андроїді

reverse2500 написав:

багатопоточність мало хто значить використовує

але всі рекрутери вимагають good knowledge of Android multithreading

Don’t do as I have done
Win where I have lost
Have where I have none
Подякували: rainboww19881

7

Re: Багатопоточність в Андроїді

щодо RxJava 1.x то він поки не deprecated, ось що на гітхабі знайшов

Timeline plans for the 1.x line:

  • June 1, 2017 - feature freeze (no new operators), only bugfixes

  • March 31, 2018 - end of life, no further development

Don’t do as I have done
Win where I have lost
Have where I have none

8

Re: Багатопоточність в Андроїді

Як можна не використовувати багатопоточність в Android, якщо в головному потоці UI забороняється робота з Net чи завантаження файлів, взагалі люба частина програми , починаючи з бізнес логіки, і ті , які використовують операції, що забирають певний час, критичний для UI, повинні бути винесені в окремі потоки.
Інформацію можна передавати, використовуючи як Pipe канали, блокуючі та неблокуючі черги з Java, так і механізм Handler - Looper з або Message, або Runnable задачами суто від Android. Останній дуже зручний для передачі як інформації (Message), так і здійснення певних дій (Runnable) як на UI потоці, так і між потоками.
Важливо не забувати при запуску робочого потоку виставляти пріоритет для Background, бо Kernel надає за замовчанням всім новим потокам найвищий пріоритет, який повинен бути тільки в UI потоку.

Подякували: 0xDADA11C7, leofun012

9

Re: Багатопоточність в Андроїді

Книжку я б порекомендував Efficient Android Threading by Anders Göransson. Чудова книжка для Android розробника.