Я пытаюсь отправить переменную int, которая постоянно обновляется в цикле for. Внутри цикла for данные публикуются для наблюдения. Поскольку переменная увеличивается в блокирующем вызове, и я хочу получить это значение в моем методе подписки реактивного X. Примечание. Я не хочу добавлять эту переменную в свой поток асинхронных данных (т.е. без отправки этого значения методом publisher.onNext ()).
после увеличения переменной int и публикации в observable в каждой итерации цикла for, я вызываю wait () для объекта. При использовании подписки я получаю значение переменной, а затем уведомляю () тот же объект. Я получаю исключение «Асинхронный цикл прерван»
public int var=0;
main(String[] args) {
for loop {
variable++;
publisher.onNext(args[0]);
//call wait on a thread to make sure current value of 'var'
//is picked in the getSubscriber() method
wait();
}
}
public Subscriber<T> getSubscriber() {
return new Subscriber<Inference>() {
@Override public void onCompleted() {}
@Override public void onError(Throwable e) {
e.printStackTrace();
}
@Override public void onNext(Inference infer) {
//do something
sysout(var);
//call notify on the thread to resume control in for
//loop
notify();
}
};
}