Sobes.tech
Junior — Middle
84

Java'da Callable ve Runnable arayüzleri arasındaki farkları açıklayın ve her birini ne zaman tercih etmeniz gerektiğini belirtin.

Sorulan şirketler
ООО Ренью

AI'dan gelen yanıt

sobes.tech yapay zeka

Интерфейсы Runnable и Callable в Java используются для определения задач, которые могут выполняться в отдельных потоках, но имеют ключевые отличия:

  • Runnable:

    • Метод run() не возвращает результат и не может выбросить проверяемые исключения.
    • Используется, когда задача не требует возвращаемого значения.
    • Пример:
      Runnable task = () -> System.out.println("Выполнение задачи");
      new Thread(task).start();
      
  • Callable<V>:

    • Метод call() возвращает результат типа V и может выбросить исключения.
    • Используется, когда нужно получить результат выполнения задачи или обработать исключения.
    • Обычно применяется с ExecutorService и Future для получения результата асинхронно.
    • Пример:
      Callable<Integer> task = () -> {
          // Некоторая вычислительная логика
          return 42;
      };
      ExecutorService executor = Executors.newSingleThreadExecutor();
      Future<Integer> future = executor.submit(task);
      Integer result = future.get();
      executor.shutdown();
      

Когда использовать:

  • Если нужна простая задача без результата — Runnable.
  • Если требуется результат или обработка исключений — Callable.