微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

public interface Subscription { public void request(long n); public void cancel(); }

订阅接口规则:

  • 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接口有哪些规则?的详细内容,更多请关注编程之家其它相关文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐