Ответ
В RxJava есть несколько видов потоков (Schedulers):
- Schedulers.io() - для I/O операций (сеть, БД, файлы). Имеет неограниченный пул потоков.
- Schedulers.computation() - для CPU-интенсивных задач. Число потоков = числу ядер CPU.
- Schedulers.newThread() - создает новый поток для каждой задачи (не переиспользует).
- Schedulers.single() - один общий поток для последовательного выполнения.
- Schedulers.trampoline() - выполняет задачи в текущем потоке (обычно для тестов).
- AndroidSchedulers.mainThread() (из RxAndroid) - главный поток UI.
Пример:
Observable.just("Data")
.subscribeOn(Schedulers.io()) // выполнение в IO потоке
.observeOn(AndroidSchedulers.mainThread()) // результат в UI поток
.subscribe { result -> textView.text = result }