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-ами і тп.

Подякували: rainboww1988, andriesko2

6

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

reverse2500 написав:

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

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

Подякували: 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

8

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

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

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

9

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

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

Подякували: andriesko1