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