Bu örnekte olabilecek en basit Callable örneği yaratıyoruz. Sadece sonuç olarak bir String döndürüyor.
import java.util.concurrent.*;
public class Test {
public static void main(String[] args) {
ExecutorService executorService=Executors.newSingleThreadExecutor();
Future<String> future = executorService.submit(
new Callable<String>() {
public String call() {
return "OK";
}
}
);
try {
System.out.println(future.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
executorService.shutdown();
}
}
İlk işlem olarak tel Thread'li bir ExecutorService yaratıyoruz. Ona çalıştırmak için bir Callable veriyoruz. Yaratılan Callable sadece String sonucu döndürüyor. ExecutorService'in submit() yöntemi geriye Future döndürüyor. Daha sonra get() yonteminde ana Thread sonucu bekler. Sonuç geldiğinde ise sonuç ekrana basılır. Son satırla da ExecutorService shotdown edilir. aksi takdirde uygulama sürekli ayakta kalırdı.