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

เมื่อใดควรใช้เมธอด delayedExecutor () ของ CompletableFuture ใน Java 9


The delayedExecutor() เพิ่มเมธอดใน CompletableFuture . แล้ว คลาสใน Java 9 CompletableFuture กำหนดวิธีการโอเวอร์โหลดสองวิธีของ delayedExecutor() :วิธีแรกส่งคืนวัตถุ Executor จาก default ผู้ดำเนินการ วัตถุที่ อนาคตที่สมบูรณ์ ออบเจ็กต์ใช้เพื่อดำเนินงานหลังการหน่วงเวลาและ ตัวดำเนินการใหม่ วัตถุสามารถดำเนินการงานได้ในขณะที่วิธีที่สองยังส่งคืนวัตถุ Executor แต่เป็นวัตถุ Executor ที่เราส่งผ่านเข้าไปในวิธีนี้หลังจากการหน่วงเวลาและ new Executor ออบเจ็กต์ยังสามารถดำเนินการตามภารกิจได้

ไวยากรณ์

 Executor แบบคงที่สาธารณะ delayedExecutor (การหน่วงเวลานาน หน่วย TimeUnit ตัวดำเนินการ Executor)  Executor แบบคงที่สาธารณะ delayedExecutor (การหน่วงเวลานาน หน่วย TimeUnit) 

ตัวอย่าง

<ก่อน> นำเข้า java.util.concurrent.CompletableFuture; นำเข้า java.util.concurrent.ExecutionException; นำเข้า java.util.concurrent.TimeUnit คลาสสาธารณะ DelayedExecutorMethodTest { โมฆะคงสาธารณะหลัก (สตริง args []) พ่น InterruptedException, ExecutionException { <แข็งแกร่ง>อนาคตที่สมบูรณ์ อนาคต =อนาคตใหม่ที่สมบูรณ์ <>(); ในอนาคตcompleteAsync(( ) -> { ลอง { System.out.println("ภายในอนาคต:กำลังประมวลผลข้อมูล..."); กลับ "tutorialspoint.com"; } จับ (โยนได้ e) { ส่งคืน "ไม่พบ"; } }, CompletableFuture.delayedExecutor (3, TimeUnit.SECONDS)) .แล้วยอมรับ (ผลลัพธ์ -> System.out.println("ยอมรับ:" + ผลลัพธ์)); สำหรับ (int i =1; i <=5; i++) { ลอง { Thread.sleep (1000); } จับ (InterruptedException จ) { e.printStackTrace (); } System.out.println("วิ่งออกไปข้างนอก... " + i + " s"); } }}

ผลลัพธ์

วิ่งออกไปข้างนอก... 1 วิ่งออกไปข้างนอก... 2 วิ่งหนีอนาคต:กำลังประมวลผลข้อมูล...ยอมรับ:tutorialspoint.comrunning ภายนอก... 3 วิ่งออกไปข้างนอก... 4 วิ่งออกไปข้างนอก... 5 วินาที