我有一个for循环,我想并行运行 .

if (platform != null) {
            for (final String p : platform) {
                log.info("Platform " + p);
                executorService.submit(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        try {
                            runService(p, config, url, title, report);
                        } catch (Exception e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                });

            }

            executorService.shutdown();
            executorService.awaitTermination(Long.MAX_VALUE,TimeUnit.NANOSECONDS);
        }

每个平台的runService方法为同一工作簿创建一个新工作表 .

我已阅读其他stackoverflow问题,apache poi工作簿不支持同一工作簿对象上的多线程 . 我已使这些方法同步,正在更新工作簿的工作表 . 这解决了我遇到的所有apache-poi错误,但仍然想知道是否有更好的方法来处理这种情况 .