Остановить основной поток, пока не закончится загрузка в другом(Observable)

Всем привет! Очень нужна помощь. Ниже указан код, который выполняется одновременно с главным потоком. Мне нужно сделать так чтобы он закончио выполняться и только после программа продолжила выполняться в главном потоке. Можно как-то это сделать? Заранее большое спасибо!

while (totalCount > groupCount) {
                disposable = apiServiceGroups.getGroupsList(String.format("{\"offset\":%s}", groupCount))
                        .subscribeOn(Schedulers.computation())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(new Consumer<GroupsListResponse>() {
                            @Override
                            public void accept(GroupsListResponse groupsListResponse) throws Exception {
                                for (int i = 0; i < groupsListResponse.getGroups().size(); i++) {
                                    String currentName = groupsListResponse.getGroups().get(i).getGroupFullName();

                                    if (groupName.equals(currentName.split(" ")[0])) {
                                        Log.i("el1", currentName);
                                        familiar.add(currentName);
                                        Log.i("el1", familiar.size() + "");
                                    }
                                }
                            }
                        }, new Consumer<Throwable>() {
                            @Override
                            public void accept(Throwable throwable) throws Exception {
                                Log.e("thro", Objects.requireNonNull(throwable.getMessage()));
                            }
                        });
                compositeDisposable.add(disposable);
                groupCount = groupCount + 100;
            }

Ответы (0 шт):