gpt4 book ai didi

java - RejectedExecutionException 即使 ExecutorService 由 isShutdown() 保护

转载 作者:行者123 更新时间:2023-11-30 11:53:07 25 4
gpt4 key购买 nike

我有一个问题让我抓狂了一段时间,我需要请教你们的集体智慧。

我有一个池为 1 的 ThreadPoolExecutor,从 Executors.newFixedThreadPool 调用。我用 !isShutdown() 保护所有 executor.execute() 因为 executor.shutdown() 是从另一个线程调用的,所以应该能够说执行程序不会抛出 RejectedExecutionException。尽管如此,这就是我随机看到的。

有人知道为什么我会看到这种行为吗?

最佳答案

您可能会阅读有关 double-checked locking 的文章为了理解如何/为什么不同步的“if then act”方法在 java 中不起作用。

出于好奇,你为什么要费心检查工作是否会被拒绝?我不记得以前看过这个。相反,为什么不捕获并处理抛出的任何 RejectedExecutionExceptions?

还要注意您如何处理其他错误情况,尤其是调用关闭时正在运行或在队列中等待的任务。 Java Concurrency in Practice 的第 7 章有很多关于此的有用信息。

关于java - RejectedExecutionException 即使 ExecutorService 由 isShutdown() 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500496/

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