/* package whatever; // don't place package name! */
import java.util.*;
import java.util.concurrent.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Ideone obj = new Ideone();
Future<Integer> res = obj.doCallable();
System.
out.
println(res.
get()); }
public Future
<Integer
> calculate
(Integer input
) { ExecutorService executor = Executors.newFixedThreadPool(1);
return executor.submit(() -> {
long start
= System.
currentTimeMillis(); System.
out.
println("Sleep time in ms = "+(System.
currentTimeMillis()-start
)); return input * input;
});
}
public Future<Integer> doCallable() {
int value = 99;
try {
Callable<Future> callable = () -> calculate(value);
Future<Integer> future = callable.call();
return future;
e.printStackTrace();
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLmNvbmN1cnJlbnQuKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS5pby4qOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlJZGVvbmUgb2JqID0gbmV3IElkZW9uZSgpOwoJCUZ1dHVyZTxJbnRlZ2VyPiByZXMgPSBvYmouZG9DYWxsYWJsZSgpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihyZXMuZ2V0KCkpOwoJfQoJcHVibGljIEZ1dHVyZTxJbnRlZ2VyPiBjYWxjdWxhdGUoSW50ZWdlciBpbnB1dCkgewoJCUV4ZWN1dG9yU2VydmljZSBleGVjdXRvciA9IEV4ZWN1dG9ycy5uZXdGaXhlZFRocmVhZFBvb2woMSk7CiAgICAgICAgcmV0dXJuIGV4ZWN1dG9yLnN1Ym1pdCgoKSAtPiB7CiAgICAgICAgCWxvbmcgc3RhcnQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKICAgICAgICAgICAgVGhyZWFkLnNsZWVwKDIwMDApOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNsZWVwIHRpbWUgaW4gbXMgPSAiKyhTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKS1zdGFydCkpOwogICAgICAgICAgICByZXR1cm4gaW5wdXQgKiBpbnB1dDsKICAgICAgICB9KTsKICAgIH0KICAgIHB1YmxpYyBGdXR1cmU8SW50ZWdlcj4gZG9DYWxsYWJsZSgpIHsKICAgIAlpbnQgdmFsdWUgPSA5OTsKCQl0cnkgewoJCQlDYWxsYWJsZTxGdXR1cmU+IGNhbGxhYmxlID0gKCkgLT4gY2FsY3VsYXRlKHZhbHVlKTsKCQkJRnV0dXJlPEludGVnZXI+IGZ1dHVyZSA9IGNhbGxhYmxlLmNhbGwoKTsKCQkJcmV0dXJuIGZ1dHVyZTsKCQl9IGNhdGNoIChmaW5hbCBFeGNlcHRpb24gZSkgewoJCQllLnByaW50U3RhY2tUcmFjZSgpOwoJCQl0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlKTsKCQl9CiAgICB9Cn0=