就超时而言,java.util.concurrent.Future的行为是什么?

时间:2019-07-14 12:33:47

标签: java

我想澄清一下这段代码:

ExecutorService executor = Executors.newCachedThreadPool();
Callable < Map < String, ? >> task = new Callable < Map < String, ? >> () {
    @Override
    public Map < String, ? > call() throws Exception {
        Map < String, ? > result = cc.execute();
        while (true) {} // notice this
        return result;
    }
};
Future < Map < String, ? >> futureResult = executor.submit(task);
Map < String, ? > result = futureResult.get(timeoutInSeconds, TimeUnit.SECONDS);

任务内部是while(true)代码,根据我的观察,此任务正好在Map < String, ? > result = futureResult.get(timeoutInSeconds, TimeUnit.SECONDS);此处设置的时间终止。

这里有一个对话:https://github.com/nginx/unit/issues/278并不是get真正打扰的人。

我的问题是,就超时而言,java.util.concurrent.Future的行为是什么?

0 个答案:

没有答案