首頁 >Java >java教程 >Java 9中的Subscription介面有哪些規則?

Java 9中的Subscription介面有哪些規則?

PHPz
PHPz轉載
2023-08-31 08:09:081215瀏覽

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介面有哪些規則?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除