Guava ให้ส่วนขยายที่มีประโยชน์มากมายสำหรับอนาคตการเขียนโปรแกรม Java Parallel อินเทอร์เฟซหลักของมันคือการฟัง Future และมันขยายไปตามความช่วยเหลือของฟิวเจอร์ส
ListenableFuture ที่สืบทอดมาในอนาคตช่วยให้เราสามารถเพิ่มฟังก์ชั่นการโทรกลับเพื่อส่งคืนค่าเมื่อการดำเนินการเธรดเสร็จสมบูรณ์หรือการดำเนินการวิธีการจะถูกส่งคืนทันที
เพิ่มฟังก์ชั่นการเรียกกลับไปยัง ListenableFuture:
futures.addcallback (ListenableFuture <v>, FutureCallback <v>, Executor)
โดยที่ futureCallback เป็นอินเทอร์เฟซที่มี onsuccess (v) และ onfailure (throwable)
ใช้ดังนี้:
Futures.addCallback (ฟังได้รับ FUTURE, FutureCallback ใหม่ <Ojuct> () {โมฆะสาธารณะ onsuccess (ผลลัพธ์วัตถุ) {system.out.printf ("onsuccess กับ: %s %n",} void public void); -ในเวลาเดียวกันฟิวเจอร์สใน Guava ก็มี:
ด้านล่างนี้เป็นตัวอย่างการทดสอบสำหรับอนาคต:
@TestPublic โมฆะควร _Test_Furture () โยนข้อยกเว้น {ListenexecutorService Service = Moreexecutors.listeningDecorator (Executors.NewFixedThreadPool (10)); ListenableFuture Future1 = service.submit (ใหม่ callable <integer> () {การโทรจำนวนเต็มสาธารณะ () พ่น InterruptedException {thread.sleep (1000); System.out.println ("โทรอนาคต 1"); return 1;}}); ListenableFuture Future2 = service.submit (ใหม่ callable <teger> () {การโทรจำนวนเต็มสาธารณะ () พ่น InterruptedException {thread.sleep (1000); System.out.println ("โทรอนาคต 2"); // โยน runtimeException ใหม่ ( Final ListenableFuture AllFuture = Futures.Allaslist (Future1, Future2); Final ListenableFuture transform = futures.Transform (allfutures, ใหม่ asyncFunction <list <integer>, boolean> () {@Override สาธารณะฟังการใช้งาน (รายการ <treger> ผลลัพธ์) โยนข้อยกเว้น futures.addcallback (แปลง, futureCallback ใหม่ <jobch> () {โมฆะสาธารณะ onsuccess (ผลลัพธ์วัตถุ) {system.out.println (result.getClass ()); System.out.printf ("ความสำเร็จด้วย:%s%n",} thrown.getMessage ());}}); System.out.println (transform.get ());}หน้าแรกข้อมูลอย่างเป็นทางการ: https://awk.so/@code.google.com!/p/guava-libraries/wiki/listenablefutureexplained
ข้างต้นคือข้อมูลที่แยกแยะอนาคตของ Guava - การเขียนโปรแกรมแบบขนาน เราจะยังคงเพิ่มข้อมูลที่เกี่ยวข้องในอนาคต ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!