Using Future, we can get the return value of callable thread.ExecutorService exService = Executors.newCachedThreadPool();Future<Integer> future=exService.submit(new CallableThread());int val=future.get();