Sobes.tech
Junior — Middle

Каква е ролята на интерфейсите Callable и Runnable в Java, и кой клас ги реализира?

sobes.tech AI

Отговор от AI

В Java интерфейсите Runnable и Callable се използват за описание на задачи, които могат да се изпълняват в отделни нишки.

  • Runnable — представлява задача, която не връща резултат и не хвърля проверяеми изключения. Методът run() не връща стойност.
  • Callable<V> — подобен на Runnable, но може да връща резултат от тип V и да хвърля изключения. Методът call() връща стойност.

Класът Thread реализира интерфейса Runnable, което позволява създаването на нишки, изпълняващи кода от метода run().

Пример за използване на Callable с ExecutorService:

ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<Integer> task = () -> {
    // Някаква изчислителна задача
    return 123;
};
Future<Integer> future = executor.submit(task);
Integer result = future.get();
executor.shutdown();