пример FutureTask и Callable:
Даём задачу , ожидаем окончание выполнения , забираем результат.
public class FuturetaskCallableExample {
public static void main(String[] args) throws Exception {
Callable<Integer> callable = new MyCallable();
FutureTask futureTask = new FutureTask(callable);
new Thread(futureTask).start();
System.out.println(futureTask.get());
}
static class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
int localVar = 0;
for (int i = 0; i < 16; i++) {
localVar++;
Thread.sleep(128);
}
return localVar;
}
}
}