2016-09-16 6 views
2

Возможно ли подписаться на два разных потока в одном и том же потоке, кроме потока вызывающего?Выполнение нескольких потоков в одной и той же теме

Предположим, что у меня есть два разных наблюдаемых и два разных подписчика. И я звоню subscribeOn(Schedulers.newThread()) на оба наблюдаемых. Но я хочу, чтобы они подписались на один поток, а не на два разных потока.

ответ

3

Да, вы можете:

Scheduler scheduler = 
    Schedulers.from(Executors.newSingleThreadExecutor()); 

Затем нанесите .subscribeOn(scheduler) к обеим наблюдаемым. Один поток может блокировать другой поток, но это, конечно, будет зависеть от ваших наблюдаемых и шаблонов запросов подписчиков.

1

Короче говоря, нет. Есть некоторые хаки, которые вы могли бы попробовать, но они были бы проблематичными. Лучше всего использовать несколько потоков.

+0

Есть ли что-нибудь проблематичное с ответом Дейва Мотена? – npace

Смежные вопросы