Google'dan çok iş yaptım ancak FutureTask kullanarak Runnable arabiriminden nasıl değer döndüğünü bulamadım.FutureTask kullanarak Runnable Arabiriminden değer nasıl geri dönülür
FutureTask kullanarak çalıştırma yönteminin sonucunu döndürmem gerekiyor, bunun aynı zamanda Callable Interface kullanılarak arşivlenebildiğini biliyorum, ancak Runnable Interface kullanılarak nasıl yapılabileceğini biliyorum.
FutureTask yapıcısı, dönüş değeri için ikinci parametreyi kabul eder. V sonuç için run() yönteminin sonucunu nasıl atayabilirsiniz. Ben
ExecutorService exec = Executors.newSingleThreadExecutor(new ThreadFactory() {
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setDaemon(true);
return t;
}
});
Future fs = exec.submit(new Callable() {
public Object call() throws Exception {
return null;//yourObject
}
});
fs.get();//your object
** Bu parametreyi "run" içinden ayarlayamazsınız. Ama bu tam olarak 'Callable'ın ne için olduğu. Neden "Callable" kullanılmıyor? – immibis
Bu arada, arayüzler bir şey yapmaz. – immibis
Callable arayüzünü kullanabilirim ama ne işe yarar FutureTask (Runnable runnable, V sonuç) – Dave