Sobes.tech
Middle

submit ile sadece Runnable mı çalıştırılabilir yoksa Callable da mı?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da ExecutorService'in submit yöntemi hem Runnable hem de Callable alabilir.

  • Eğer Runnable geçirilirse, yöntem Future<?> döner ve bu, görevin tamamlanmasını izlemek için kullanılabilir, ancak sonuç null olur.
  • Eğer Callable<V> geçirilirse, submit Future<V> döner, burada V görevin döndürdüğü sonuç türüdür.

Örnek:

ExecutorService executor = Executors.newFixedThreadPool(2);

// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Runnable görevi"));

// Callable
Future<Integer> future2 = executor.submit(() -> {
    Thread.sleep(1000);
    return 42;
});

Integer result = future2.get(); // result 42 olacak
executor.shutdown();