6

この質問はよくあるようですが、マルチスレッドが同じファイル (Excel) に書き込んでいるときに問題に直面しています。これが私のコードです:

public class XLWriter {

private XLWriter() {
}

private static class SingletonHelper {
    private static final XLWriter INSTANCE = new XLWriter();
}

public static synchronized XLWriter getInstance() {
    return SingletonHelper.INSTANCE;
}

public static synchronized void writeOutput(Map<String, String> d) {
    try {
        --- Write file
    } catch (Exception e) {
        SOP("Not able to write output to the output file.");
    }
}

public static void createWorkBook(String fileName, String sheetName)
        throws IOException {
    try {
        -- Create workbook
    } catch (WriteException e) {
        System.out.println("Could not create workbook" + e);
    }
}

私はtestngフレームワークを使用しており、10個のスレッドが同じファイルに書き込もうとしています。スレッドの多くはそれに書き込むことができず、例外ブロック内に入ります...これを行うより良い方法は何ですか? これを完了する時間が非常に少ないため、コードサンプルは非常に役立ちます..ありがとう。

4

1 に答える 1