Java SwingWorker线程是否相互隔离,它们是否适合执行器服务?

Java SwingWorker线程是否相互隔离,它们是否适合执行器服务?,java,swing,executorservice,swingworker,executionexception,Java,Swing,Executorservice,Swingworker,Executionexception,我正试图与执行人一起执行SwingWorker's。当我在线程池大小为1的情况下执行/提交这些任务时,这些任务执行得非常完美 但是,当我执行线程池大小大于1的任务时,我会得到ExecutionException的封装NullPointerException和OutOfBoundsException,正如我所看到的。这些异常在连续运行任务时不会发生 所有任务共享一个公共配置文件-我现在已经更改了这个文件,以便它们使用自己的配置文件。我希望这会消除线程不安全的一个方面 不幸的是,我无法访问异步调用的

我正试图与执行人一起执行SwingWorker's。当我在线程池大小为1的情况下执行/提交这些任务时,这些任务执行得非常完美

但是,当我执行线程池大小大于1的任务时,我会得到ExecutionException的封装NullPointerException和OutOfBoundsException,正如我所看到的。这些异常在连续运行任务时不会发生

所有任务共享一个公共配置文件-我现在已经更改了这个文件,以便它们使用自己的配置文件。我希望这会消除线程不安全的一个方面

不幸的是,我无法访问异步调用的库的源代码

我真的有两个问题:

1) 。SwingWorker线程是否共享资源?我假设它们是这样的,我的问题是由于我称之为singleton的库中缺乏线程安全性

2) 。有人能对SwingWorker与ExecutorService一起使用的适用性发表进一步的评论吗?你有恐怖故事吗?我使用SwingWorker的原因是所有这些都位于GUI下,我希望将来能够显示进度更新。这就是为什么我不能使用guava的ListenableFuture,但如果有人有一个好的解决方案来进行更新,我会乐意接受的


谢谢

听起来你的库不是线程安全的。永远不要面对,一切(这里描述的)都像雾一样,一阵风,天空晴朗,没有你的代码,短,可运行,可编译,局部变量中的硬编码值,上午演示。线程池堆栈跟踪和代码示例的问题在这里非常有用。