Чтение значений ячеек в нескольких потоках одновременно
Как читать значения ячеек в нескольких потоках одновременно с Aspose.Cells for Java
Для чтения значений ячеек в более чем одном потоке одновременно установите Worksheet.getCells().setMultiThreadReading() в true. В противном случае вы можете получить неверные значения ячеек. Обратите внимание, некоторые функции, такие как форматирование значений ячеек, не поддерживаются для многопоточности. Поэтому MultiThreadReading позволяет получить доступ только к исходным данным ячейки. В среде многопоточности, если вы попытаетесь получить отформатированное значение ячейки, например, с помощью Cell.getStringValue() для числовых значений, вы можете получить непредвиденный результат или исключение.
Следующий код:
- Создает рабочую книгу.
- Добавляет лист.
- Заполняет лист строковыми значениями.
- Затем создает два потока, которые одновременно читают значения из случайных ячеек. Если прочитанные значения правильные, ничего не происходит. Если прочитанные значения неправильные, то отображается сообщение.
Если вы закомментируете эту строку:
testWorkbook.getWorksheets().get(0).getCells().setMultiThreadReading(true);
тогда отображается следующее сообщение:
if (s.equals("R" + row + "C" + col)!=true)
{
System.out.println("This message box will show up when cells read values are incorrect.");
}
В противном случае программа работает без отображения любого сообщения, что означает, что все значения, считываемые из ячеек, являются правильными.