关于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