Middle
Կարող եք միայն Runnable-ը գործարկել submit-ով, թե նաև Callable-ը?
sobes.tech AI
Պատասխան AI-ից
Java-да ExecutorService-ի submit մեթոդը կարող է ընդունել ինչպես Runnable, այնպես էլ Callable:
- Եթե փոխանցեք
Runnable, մեթոդը վերադարձնում էFuture<?>, որը կարող է օգտագործվել աշխատանքի ավարտը հետևելու համար, բայց արդյունքը կլինիnull: - Եթե փոխանցեք
Callable<V>, ապաsubmitվերադարձնում էFuture<V>, որտեղV— աշխատանքի վերադարձվող արդյունքի տիպը:
Օրինակ:
ExecutorService executor = Executors.newFixedThreadPool(2);
// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Runnable աշխատանք"));
// Callable
Future<Integer> future2 = executor.submit(() -> {
Thread.sleep(1000);
return 42;
});
Integer result = future2.get(); // արդյունքը կլինի 42
executor.shutdown();