Sobes.tech
Middle

submit аркылуу гана Runnable ишке ашыруу мүмкүнбү же 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();