Я делаю своего рода опрос - каждые 1с я звоню read()
, получите некоторую стоимость и отправьте через inform(value)
(LocalBroadcastManager под капотом). readSubs.unsubscribe();
на всякий случай, следующий опрос быстрее, чем предыдущий.Это нормально, когда имя потока получает суффикс имени 4 цифры (например, RxNewThreadScheduler-1009)?
public void read(){
readSubs.unsubscribe();
readSubs = connection.read()
.subscribe(new Action1<Integer>() {
@Override
public void call(Integer value) {
Log.d(LOG_TAG, "read " + value);
inform(value);
}
});
}
public void inform(Integer value) {
Log.d(TAG, "informed " + value + " on thread " + Thread.currentThread().toString());
broadcaster.newValue(value); //broadcaster extends LocalBroadcastManager
}
Я наблюдатель от LogCat что
informed value 70 on thread Thread[RxNewThreadScheduler-1009,5,main]
До сих пор я получаю имя нить до RxNewThreadScheduler-1009
и он растет. Мои вопросы:
- Это нормально, когда имя потока получает 4 цифры имени суффикса?
- Означает ли это, что на самом деле 1009 потоков?
Можете ли вы добавить еще несколько: почему я должен использовать Schedulers.io()? –
io() повторно использует потоки, и его индекс не должен расти так сильно, что экономит на обработчиках ОС в этом процессе. – akarnokd
Действительно, с именем Schedulers.io() имя потока не более RxIoScheduler-2. Где можно найти документацию по этому поведению Schedulers.io()? –