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();