final int corePoolSize = 100;
final int maximumPoolSize = 100;
final long keepAliveTime = 100000;
final TimeUnit unit = TimeUnit.SECONDS;
final BlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<>(maximumPoolSize);
sun.awt.AppContext.getAppContext().put(SwingWorker.class,
new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue));
Приведенный выше пример кода позволит вам выполнить число SwingWorkers больше, чем по умолчанию.Конечно, он обращается к некоторому закулисному классу sun.awt.AppContext, но это быстрый обходной путь для тех, кто заинтересован и не может / не хочет предоставить свой собственный ExecutorService.