توفر جوافا العديد من الامتدادات المفيدة لمستقبل البرمجة الموازية لـ Java ، وواجهتها الرئيسية قابلة للاستماع ، ويمتد بشكل ثابت بمساعدة العقود الآجلة.
يتيح لنا ListerableFuture الموروثة إلى المستقبل إضافة وظيفة رد اتصال لإرجاع القيمة عند اكتمال عملية مؤشر الترابط أو يتم إرجاع تنفيذ الطريقة على الفور.
أضف وظيفة رد الاتصال إلى الاستماع Future:
Futures.AddCallback (الاستماع Future <v> ، FutureCallback <v> ، Executor)
حيث FutureCallback عبارة عن واجهة تحتوي على onsuccess (V) و onFaileure (قابلة للتخفيف).
تستخدم على النحو التالي:
Futures.AddCallback (الاستماع FutureCallback <bomf> () {public void onsuccess (نتيجة الكائن) {system.out.printf ("onSuccess with: ٪ s ٪ n" ، result) ؛} public void onfailure (throw remoRnow) }}) ؛في الوقت نفسه ، لدى العقود الآجلة في الجوافة أيضًا:
فيما يلي اختبار تجريبي للمستقبل:
testpublic void should_test_furture () يلقي الاستثناء {annarexecutorservice service = moreExecutors.ListeningDecorator (Executors.NewFixedThreadPool (10)) ؛ الاستماع Futurefuture Future1 = service.submit (جديد قابل للاتصال <integer> () {call integer public () يلقي interruptedException {thread.sleep (1000) ؛ system.out.println ("Call Future 1.") ؛ Return 1 ؛}}) ؛ stiNedfuture future2 = service.submit (new callable <integer> () {public integer call () رميات interruptedException {thread.sleep (1000) ؛ system.out.println ("Call Future 2.") Final ListenableFuture allfuture = futures.allaslist (Future1 ، Future2) ؛ Final ListenableFuture Transform = Futures.transform (allfutures ، new Asyncfunction <List <Integer> ، boolean> () {Override public stistablefuture تطبيق (قائمة <integer> النتائج) يرمي الاستثناء مستقبلات. thrown.getMessage ()) ؛ system.out.println (transform.get ()) ؛}المعلومات الرئيسية للمعلومات الرئيسية: https://awk.so/@code.google.com
ما ورد أعلاه هو المعلومات التي تقوم بفرز الجوافة - العقود الآجلة للبرمجة المتوازية. سنستمر في إضافة المعلومات ذات الصلة في المستقبل. شكرا لدعمكم لهذا الموقع!