在配置了 core、max、timeout、time unit 和 bounded queue 的ThreadPoolExecutor上调用invokeAll和invokeAny并在其调用中指定超时长度和单位,是否会在执行任务时覆盖 executor 的超时设置?在 invokeAll 的情况下,这将适用于对返回的期货之一使用get方法(您可以在 get 上指定额外的超时)。对于invokeAny,它适用于调用本身。
ExecutorService threadPool = new ThreadPoolExecutor(coreSize, maxSize, poolTO, tu, new ArrayBlockingQueue<Runnable>(queueSize));
...并且在包含此 threadPool 对象的类中,我公开了 submit、invokeAll 和 invokeAny,对于后两者,我不公开超时设置,因为我选择使用用于构造 threadPool 的相同设置. 我问这个问题,如果在我的小单例代理包装类中公开这些会覆盖上面构造函数中定义的超时设置。