Sobes.tech
Junior — Middle

Java'da Future sinfining roli nima va u nima uchun mo'ljallangan?

sobes.tech AI

AIdan javob

Java'da Future sinfi, kelajakda tugatilishi mumkin bo'lgan asinxron operatsiyaning natijasini ifodalaydi. U quyidagilar uchun mo'ljallangan:

  • Boshqa oqimda bajarilayotgan hisoblash natijasini olish.
  • Operatsiya tugagan yoki bekor qilinganligini (isDone(), isCancelled()) tekshirish.
  • Vazifani bekor qilish imkoniyati (cancel()).

ExecutorService bilan birga ishlatiladi va asinxron vazifalarni boshqarish uchun mo'ljallangan. Masalan, vazifani yuborish va ishlashni davom ettirish, keyin natijani tayyor bo'lsa olish.

Misol:

ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(() -> {
    Thread.sleep(1000); // uzoq davom etadigan operatsiyaning simulyatsiyasi
    return 42;
});

// Bu yerda boshqa harakatlarni amalga oshirish mumkin

try {
    Integer result = future.get(); // natija tayyor bo'lguncha bloklanadi
    System.out.println("Natija: " + result);
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}
executor.shutdown();