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

การปรับปรุง CompletableFuture API ใน Java 9 คืออะไร


อนาคตที่สมบูรณ์ 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 เท่านั้น .