Я очень новичок в темах.Поэтому, пожалуйста, прости мое невежество, если это очень простой вопрос.По сути, я пытаюсь написать список сотрудников в книгу Excel.Таким образом, в приведенном ниже классе метод startUp
вызывается только один раз.Принимая во внимание, что метод записи вызывается несколько раз из 10 разных потоков.
@Component
class MyEmployeeWriter{
priavte int rowNum; // To start with, the rowNum is 0 here
public void startUp(Employees employee)
{
// some logic ...
this.rowNum++; //now rowNum is 1
}
public void write(Employees employees)
{
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.createRow(this.rowCount); //here for all the 10 threads the, rowNum is 1
// Some more logic here...
this.rowCount++;
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что для всех 10 потоков this.rowCount
равно 1. Увеличенное значение rowCount
недоступно для следующей темы.
Пробная версия 1:
Я использовал ключевое слово volatile
для rowNum.Это также не сработало.
Пробная версия 2:
Я попытался изменить rowNum на Integer(Wrapper class)
и добавил к нему синхронизированный блок.Это тоже не сработало.
synchronized(this.rowNum) // I changed rowNum from int to Integer.
{
// Some logic here
}
Любая помощь будет оценена.Спасибо.