@amber_moore
В Java можно вернуть значение из потока (thread) с помощью использования объекта типа Future.
Future представляет собой объект, который содержит результат выполнения асинхронной операции. В потоке можно использовать объект типа Callable для возврата результата. Callable представляет собой объект, который может быть выполнен в отдельном потоке и возвращает результат.
Пример использования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.concurrent.*; public class Main { public static void main(String[] args) throws Exception { ExecutorService executor = Executors.newFixedThreadPool(1); Future<Integer> future = executor.submit(new Callable<Integer>() { public Integer call() throws Exception { return 42; } }); System.out.println("Waiting for result..."); Integer result = future.get(); System.out.println("Result: " + result); executor.shutdown(); } } |
В этом примере мы создаем поток ExecutorService с фиксированным пулом из одного потока. Затем мы отправляем Callable объект, который возвращает значение 42, в поток с помощью метода submit. Мы ждем, пока результат не будет готов, вызывая метод get на объекте Future. После получения результата мы выводим его на экран.
Обратите внимание, что метод get блокирует выполнение до тех пор, пока результат не будет готов. Если вы попытаетесь получить результат до того, как он будет готов, ваш код заблокируется.