RxJava merge параллельное выполнение

161
28 мая 2019, 19:30

Не удается запустить параллельно два Observable через merge.

class MyExample {
    //Создание observable
    public static Observable<String> createObservable(String name){
        return Observable.create(o -> {
            Integer count = 1;
            while (count++ < 100) {
                Thread.sleep(100);//TODO:Имитация работы удаленного сервера
                o.onNext(name+"_"+count.toString());
            }
            o.onComplete();
        });
    }
    public MyExample() {            
        //Формируем список из observable
        List<Observable<String>> ol = new ArrayList<>();
        ol.add(createObservable("Первый"));
        ol.add(createObservable("Второй"));
        Observable<String> rxObservable = Observable.merge(ol)
            .subscribeOn(Schedulers.io())
            .observeOn(io.reactivex.android.schedulers.AndroidSchedulers.mainThread());
        //Слушатель, выводит в консоль все что ему присылают
        DisposableObserver<String> observer = new DisposableObserver<String>() {
            @Override
            public void onNext(String s) {
                Log.e("rx", s);
            }
            @Override
            public void onError(Throwable e) {
                Log.e("rx", "error");
            }
            @Override
            public void onComplete() {
                Log.e("rx", "complete");
            }
        };
        rxObservable.subscribe(observer); //Запускаем
    }
}

При выполнении, в консоли строки Первый_x и Второй_x должны появляться вперемешку, так описана работа .megre(). Но почему то, выполнение происходит последовательно, и сначала появляются все Первый_x и только потом все Второй_x. В чем проблема?

READ ALSO
Работа с текстом на java

Работа с текстом на java

Программа выдает поток текстовых данных типа:

146
Как обновить содержимое JTable?

Как обновить содержимое JTable?

Не получается обновить содержимое JTable при изменении DefaultTableModelОбщая идея такова: создается меню с тремя подпунктами - таблицами из базы данных

134
SQLiteLog: (1) no such table for Android 9

SQLiteLog: (1) no such table for Android 9

Возникла проблема с Android 9Использую "стандартный" класс MyDataBaseOpenHelper extends SQLiteOpenHelper С выходом андроид 9 появилась проблема android

208