อนาคตที่สมบูรณ์ API ใช้สำหรับ อะซิงโครนัส การเขียนโปรแกรม ในชวา หมายความว่าเราสามารถเขียนไม่ปิดกั้น รหัส โดยเรียกใช้งานบนเธรดที่แยกจาก main() เธรดและแจ้ง main() หัวข้อเกี่ยวกับความคืบหน้า ความสมบูรณ์ หรือความล้มเหลว Java 9 แนะนำการปรับปรุงเล็กน้อยใน CompletableFuture API ได้แก่ "รองรับการหมดเวลาและความล่าช้า" "ปรับปรุงการรองรับคลาสย่อย" และ "การเพิ่มวิธีการใหม่จากโรงงาน"
รองรับการหมดเวลาและความล่าช้า
public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)
วิธีการข้างต้นถูกใช้เพื่อระบุว่างานไม่เสร็จสมบูรณ์ภายในระยะเวลาหนึ่งที่โปรแกรมหยุดทำงานและแสดง TimeoutException .
public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
วิธีการข้างต้นทำให้ CompletableFuture . สมบูรณ์ ด้วยค่าที่จัดให้ มิฉะนั้น จะเสร็จสิ้นก่อนหมดเวลาที่กำหนด
ปรับปรุงการรองรับคลาสย่อย
public Executor defaultExecutor()
วิธีการข้างต้นส่งคืน ค่าเริ่มต้น ผู้ดำเนินการ ใช้สำหรับเมธอด async ที่ไม่แสดง Executor อาจถูกแทนที่ในคลาสย่อยเพื่อส่งคืน Executor เพื่อให้ อิสระ อย่างน้อยหนึ่งตัว กระทู้ .
public <U> CompletableFuture<U> newIncompleteFuture()
วิธีการข้างต้นส่งคืน ไม่สมบูรณ์ . ใหม่ อนาคตที่สมบูรณ์ ของข้อกำหนดที่จะส่งคืนโดย CompletionStage วิธีการ
วิธีการใหม่จากโรงงาน
public static <U> CompletableFuture<U> completedFuture(U value)
วิธีการของโรงงานด้านบนส่งคืน CompletableFuture . ใหม่ ที่สำเร็จไปแล้วด้วยค่าที่จัดให้
public static <U> CompletionStage<U> completedStage(U value)
วิธีการจากโรงงานด้านบนจะคืนค่า CompletionStage . ใหม่ ที่ทำสำเร็จมาก่อนด้วยค่าที่ให้มาและเข้ากันได้กับวิธีการที่มีอยู่ในอินเทอร์เฟซ CompletionStage เท่านั้น .