Sobes.tech
Middle
21

submit тек Runnable-ды іске қосу үшін бе, әлде Callable-ды да қолдануға бола ма?

Сұралған компаниялар
Позитив Технолоджис

AI-дан жауап

sobes.tech AI

Метод submit из ExecutorService в Java может принимать как 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 task"));

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

Integer result = future2.get(); // result будет 42
executor.shutdown();