gpt4 book ai didi

java - 为什么我不能用 BlockingQueue; 实例化 ThreadPoolExecutor?为什么只有 BlockingQueue

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:39:53 30 4
gpt4 key购买 nike

我的理解是1.5加入了callable,runnable接口(interface)保持原样,防止世界末日。为什么我不能实例化 ThreadPoolExecutor (core, max, tu, unit, new BlockingQueue<Callable>()) - 为什么队列必须只能运行?在内部,如果我要提交、invokeAll、invokeAny 可调用对象,这应该没问题吧?另外,会 shutDownNow() 返回可调用列表?

最佳答案

您可以提交 Callables,但它们在内部被包装为 Runnables(实际上是 FutureTasks,它实现了 Runnable ). shutDownNow() 只会返回 Runnables,就像 jar 头上写的那样。

如果您想获取尚未运行的 Callables 列表,您需要自己以某种方式跟踪它们(例如,保留它们的列表并让它们负责当他们被调用时将自己从列表中删除。)

关于java - 为什么我不能用 BlockingQueue<Callable>; 实例化 ThreadPoolExecutor?为什么只有 BlockingQueue<Runnable>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153496/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com