Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ขั้นตอนการรัน Flow API ใน Java 9

Flow API ใน Java 9 สอดคล้องกับข้อกำหนด Reactive Streams ซึ่งเป็นมาตรฐาน de facto ประกอบด้วยชุดอินเทอร์เฟซขั้นต่ำที่จับหัวใจของการเผยแพร่และการสมัครรับแบบอะซิงโครนัส

อินเทอร์เฟซสำคัญของ Flow API:

1) Flow.Publisher: ผลิตไอเทมให้ Subscriber รับประทาน มีเพียงเมธอดเดียว: subscribe(Subscriber)

void subscribe(Flow.Subscriber<? super T> subscriber)

2) Flow.Subscriber: สมัครรับจาก Publisher (ปกติเพียงตัวเดียว) เพื่อรับไอเทม (ผ่าน onNext(T)), ข้อความข้อผิดพลาด (onError(Throwable)), หรือสัญญาณว่าไม่มีไอเทมเพิ่มเติม (onComplete()) ก่อนที่จะเกิดเหตุการณ์เหล่านี้ Publisher จะเรียกเมธอด onSubscription(Subscription)

void onSubscribe(Flow.Subscription subscription)
void onNext(T item)
void onError(Throwable throwable)
void onComplete()

3) Flow.Subscription: การเชื่อมต่อระหว่าง Publisher เดียวและ Subscriber เดียว Subscriber ใช้มันขอไอเทมเพิ่ม (request(long)) หรือตัดการเชื่อมต่อ (cancel())

void request(long n)
void cancel()

ขั้นตอนการรัน Flow API:

  • สร้าง Publisher และ Subscriber ก่อน
  • สมัคร Subscriber ด้วย Publisher::subscribe
  • Publisher สร้าง Subscription และเรียก Subscriber::onSubscription พร้อมมัน เพื่อให้ Subscriber เก็บ subscription ไว้
  • Subscriber เรียก Subscription::request เพื่อขอจำนวนไอเทม
  • Publisher เริ่มส่งไอเทมให้ Subscriber ผ่าน Subscriber::onNext ไม่เคยส่งมากกว่าจำนวนที่ขอ
  • Publisher อาจเจอปัญหาและเรียก Subscriber::onComplete หรือ Subscriber::onError ตามลำดับ
  • Subscriber อาจขอไอเทมเพิ่มต่อไป หรือตัดการเชื่อมต่อด้วย Subscription::cancel