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();