この質問はよくあるようですが、マルチスレッドが同じファイル (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個のスレッドが同じファイルに書き込もうとしています。スレッドの多くはそれに書き込むことができず、例外ブロック内に入ります...これを行うより良い方法は何ですか? これを完了する時間が非常に少ないため、コードサンプルは非常に役立ちます..ありがとう。