Java 9中的Subscription接口有哪些规则?

Java 9中的Subscription接口有哪些规则?

一个订阅可以由一个发布者和一个订阅者共享,用于调解数据交换。这就是为什么subscribe()方法不返回创建的订阅,而是返回void。订阅仅通过onSubscribe()方法回调传递给订阅者。订阅接口包含两个方法:request()cancel()

语法

<strong>public interface Subscription {
   public void request(long n);
   public void cancel();
}</strong>

订阅接口规则:

  • Subscription.request() Subscription.cancel() 方法只能在其订阅者上下文内部调用。
  • 订阅必须允许订阅者从内部同步调用 Subscription.request() 方法onNext()onSubscribe() 方法。
  • Subscription.request() 方法必须设置可能的上限发布者订阅者之间的同步递归。
  • Subscription.request()方法应通过返回来尊重其调用者的响应性
  • Subscription.cancel()方法必须通过及时返回来尊重调用者的响应能力,并且必须是线程安全的 strong>。
  • 虽然订阅未取消,Subscription.request(long n) 方法必须注册要为相应订阅者生成的给定数量的附加元素。
  • 虽然订阅未取消,但 Subscription.request(long n) 方法必须调用 onError() 方法并抛出 IllegalArgumentException if参数为
  • 当订阅未取消时,Subscription.request(long n)方法可能会同步调用onNext()方法在此订阅者或其他订阅者上。
  • 当订阅未取消时,Subscription.request(long n) 方法可能会同步调用 onComplete() 或 onError()方法。
  • 虽然订阅未取消,但Subscription.cancel()方法必须请求发布者停止向其发出信号订户。该操作不能立即影响订阅。
  • 虽然订阅未取消,Subscription.cancel() 方法必须请求发布者删除对相应订阅的任何引用订阅者。
  • 调用Subscription.cancel()Subscription.request()方法必须正常返回。
  • >订阅必须支持无限数量的请求调用,并支持最多2^63-1的需求。如果需求等于或大于2^63-1,发布者可能会认为有效无界

以上就是Java 9中的Subscription接口有哪些规则?的详细内容,更多请关注其它相关文章!