मैं नए आरएक्स जावा 2 को देख रहा हूं और मुझे यकीन नहीं है कि मैं backpressureअब के विचार को समझता हूं ...
मुझे पता है कि हमारे Observableपास backpressureसमर्थन है और Flowableउसके पास नहीं है।
तो उदाहरण के आधार पर, मैं कहता हूं कि मेरे पास flowableहै interval:
Flowable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
// do smth
}
});
यह लगभग 128 मूल्यों के बाद दुर्घटनाग्रस्त होने जा रहा है, और यह स्पष्ट है कि मैं आइटम प्राप्त करने की तुलना में धीमी खपत कर रहा हूं।
लेकिन फिर हमारे साथ भी ऐसा ही है Observable
Observable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
// do smth
}
});
यह बिल्कुल भी दुर्घटनाग्रस्त नहीं होगा, तब भी जब मैं इसके सेवन पर कुछ देरी करता हूं। Flowableकाम करने के लिए मैं कहता हूं कि मैं onBackpressureDropऑपरेटर डाल रहा हूं , दुर्घटना हो गई है, लेकिन सभी मूल्यों को उत्सर्जित नहीं किया जाता है।
इसलिए आधार प्रश्न मैं वर्तमान में मेरे सिर में उत्तर नहीं पा सकता है, मुझे इस बात की परवाह क्यों करनी चाहिए कि मैं backpressureसादे का उपयोग कर सकता हूं फिर Observableभी सभी मूल्यों को प्रबंधित किए बिना प्राप्त कर सकता हूं buffer? या हो सकता है कि दूसरी तरफ, backpressureउपभोग को संभालने और संभालने के पक्ष में मुझे क्या फायदे हों ?

