Java 9中Publisher界面的规则是什么?
甲出版商 是测序元件的无限数目的根据来自其用户的接收需求发布他们的供应商。Publisher<T> 接口负责发布T类型的元素,并为订阅者提供了一个subscription()方法以与其连接。
public interface Publisher<T> { public void subscribe(Subscriber<? super T> s); }
发布者界面规则:
的总数onNext()方法,通过用信号通知发布 给订阅者 必须小于或等于由Subscriber's要求的元素的总数订阅 在任何时候。
甲出版商 可以用信号更少onNext()方法比请求,并终止认购 通过调用的onComplete()或的onError()方法。
发送给订阅服务器 的onSubscribe(),onNext(),onError()和onComplete()方法必须串行发送。
如果Publisher失败,则它必须发出onError()方法的信号。
如果Publisher成功终止,则它必须发出onComplete()方法的信号。
如果发布者在Subscriber上发出onError()或onComplete()方法的信号,则必须取消订阅者的Subscription。
一旦发出终端状态信号(onError(),onComplete()),就要求不再发生其他信号。
如果取消订阅,则必须停止向其订阅者发送信号。
Publisher.subscribe()方法必须在提供给该订阅服务器的 任何其他信号之前调用该订阅服务器上的onSubscribe()方法,并正常返回,除非提供的订阅服务器为null时。在这种情况下,它必须向调用方抛出NullPointerException 。
Publisher.subscribe()方法每次可以与一个不同的Subscriber一起调用任意多次。
甲出版商 可以支持多个订户和决定每个订阅是否可以是单播 或组播。