package com.koushikdutta.async.future;
import java.util.concurrent.ExecutorService;
/**
* Created by koush on 12/22/13.
*/
public class FutureThread<T> extends SimpleFuture<T> {
public FutureThread(final FutureRunnable<T> runnable) {
this(runnable, "FutureThread");
}
public FutureThread(final ExecutorService pool, final FutureRunnable<T> runnable) {
pool.submit(new Runnable() {
@Override
public void run() {
try {
setComplete(runnable.run());
}
catch (Exception e) {
setComplete(e);
}
}
});
}
public FutureThread(final FutureRunnable<T> runnable, String name) {
new Thread(new Runnable() {
@Override
public void run() {
try {
setComplete(runnable.run());
}
catch (Exception e) {
setComplete(e);
}
}
}, name).start();
}
}