我正在尝试使用Executor执行SwingWorker。当我以线程池大小为1执行/提交这些任务时,任务执行得非常完美。
但是,当我执行线程池大小大于1的任务时,我得到了ExecutionException,它封装了我看过的NullPointerException和OutOfBoundsException。当任务以串行方式运行时,不会发生这些异常。
所有任务共享一个公共配置文件 - 我现在更改了这个,以便他们使用自己的配置文件。我希望这会消除一个绊倒线程不安全的区域。
不幸的是,我无法访问我异步调用的库的源代码。
我真的有两个问题:
1)。 SwingWorker线程共享资源吗?我假设他们这样做,我的问题是由于我所称的库中缺少线程安全性,例如单身人士。
2)。任何人都可以进一步评论将SwingWorker与ExecutorService一起使用的适用性吗?你有恐怖故事吗?我使用SwingWorker的原因是所有这些都在GUI下面,我希望将来能够显示进度更新。这就是阻止我使用guava的ListenableFuture的原因,但是如果有人有一个很好的解决方案来推进更新我将会接受它。
由于