關於Java9中新的Flow
相關接口,我來到了article。從那裏示例代碼:流程編程:訂閱者和發佈者跟蹤計數?
public class MySubscriber<T> implements Subscriber<T> {
private Subscription subscription;
@Override
public void onSubscribe(Subscription subscription) {
this.subscription = subscription;
subscription.request(1); //a value of Long.MAX_VALUE may be considered as effectively unbounded
}
@Override
public void onNext(T item) {
System.out.println("Got : " + item);
subscription.request(1); //a value of Long.MAX_VALUE may be considered as effectively unbounded
}
正如你所看到的,onNext()
請求一個新項目推。
現在我想知道:
- 如果
onSubscribe()
要求,說5個項目 - 並且第一個項目被交付後,
request(1)
被稱爲像上面
目前預計到服務器發送
- 5項(5請求-1發送+1必要相關捐資)
- 或一個項目(因爲以前的請求被通過新的請求「丟棄」)
換句話說:當request()
叫了幾次,做這些數字加起來;或之前的請求是否被「丟棄」?
通向問題標題 - 用戶是否需要跟蹤收到的項目,以避免在某個時候請求「太多」項目。
似乎將增加:[_Adds給定的數字'N'項目,以目前的** ** unfulfille爲d這subscription_需求(http://download.java.net/java/jdk9/docs/ api/java/util/concurrent/Flow.Subscription.html#request-long-) –
@SotiriosDelimanolis我認爲你應該寫更多的答案,單獨評論真的很有幫助。在別處表達我的感激之情;-) – GhostCat